<?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>202142</bug_id>
          
          <creation_ts>2019-09-24 07:14:14 -0700</creation_ts>
          <short_desc>Fix ServiceWorker downloads</short_desc>
          <delta_ts>2021-12-13 03:27:16 -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>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mrskman</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>bugmail</cc>
    
    <cc>cdumez</cc>
    
    <cc>christian</cc>
    
    <cc>crytekov</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>florianernst59</cc>
    
    <cc>gleb.khmyznikov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>iau87</cc>
    
    <cc>jimmy</cc>
    
    <cc>kevodwyer</cc>
    
    <cc>martiminchev</cc>
    
    <cc>pedrojvpedrosa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>shershnev.av</cc>
    
    <cc>s.knoblich</cc>
    
    <cc>songjunphilip</cc>
    
    <cc>tffy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573648</commentid>
    <comment_count>0</comment_count>
    <who name="">mrskman</who>
    <bug_when>2019-09-24 07:14:14 -0700</bug_when>
    <thetext>When downloading Safari tries to fetch a file from network and bypasses the ServiceWorker. So files which are generated inside the ServiceWorker can&apos;t be downloaded.

See sample URL: https://stat-info.cz/safari-sw-download.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574255</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-25 15:40:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/55721934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688616</commentid>
    <comment_count>2</comment_count>
    <who name="">mrskman</who>
    <bug_when>2020-09-15 00:04:34 -0700</bug_when>
    <thetext>Any progress on this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688753</commentid>
    <comment_count>3</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2020-09-15 10:53:28 -0700</bug_when>
    <thetext>*** Bug 201580 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688760</commentid>
    <comment_count>4</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2020-09-15 11:09:42 -0700</bug_when>
    <thetext>usually don&apos;t bump threads with +1 or how it&apos;s going? cuz I know how annoying it can be. But I have been waiting for a year now for this to be resolved with one failed attempt (#182848) and got no feedback or progress on this topic. feels like this have been kept in the dark and have been forgotten about. Could someone give this a tiny bit higher priority please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690628</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 23:27:38 -0700</bug_when>
    <thetext>To be noted that if the file generation takes too long, the service worker might be stopped before the download finishes.
I did not check in Chrome and Firefox but I would guess they have this behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690632</commentid>
    <comment_count>6</comment_count>
    <who name="">mrskman</who>
    <bug_when>2020-09-21 23:53:01 -0700</bug_when>
    <thetext>I&apos;m using Chrome/Firefox service worker downloads for some time and I have no problem to download hundreds of GB in a single download. It can take hours and the service worker will not be interrupted. It is still downloading even on Android with Chrome in background!

Yes, there are edge cases where the service worker might be interrupted but the &quot;standard&quot; download might be interrupted as well by any browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690634</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 23:55:23 -0700</bug_when>
    <thetext>(In reply to mrskman from comment #6)
&gt; I&apos;m using Chrome/Firefox service worker downloads for some time and I have
&gt; no problem to download hundreds of GB in a single download. It can take
&gt; hours and the service worker will not be interrupted. It is still
&gt; downloading even on Android with Chrome in background!

Thanks for the feedback.
Can you tell me whether this is the case even if there is no client for that particular service worker, say you have one page which is the sole service worker client, you start the download and then close the page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690639</commentid>
    <comment_count>8</comment_count>
    <who name="">mrskman</who>
    <bug_when>2020-09-22 00:14:13 -0700</bug_when>
    <thetext>I&apos;m feeding service worker from the page so I can&apos;t tell if it works reliably this way. As a quick test I tried to close the page in Chrome while downloading. The download was not interrupted, but was waiting endlessly for data as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690658</commentid>
    <comment_count>9</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2020-09-22 02:37:23 -0700</bug_when>
    <thetext>I know for a fact that one way to keep the service worker alive is to keep sending postMessages every x second to it to prevent it from going idle.
(i think this is stupid and the spec should change it to allow it to stay open for longer: https://github.com/w3c/ServiceWorker/issues/980#issuecomment-486827233)

I have also read up in some issues in chromium bug and bugzilla that service worker should be alive for longer periods if it is holding a `FetchEvent.respondWith()` and the FetchEvent&apos;s window is still open.  If the FetchEvent&apos;s window is closed, the `respondWith()` keep alive should be revoked.

https://github.com/w3c/ServiceWorker/issues/882
https://bugzilla.mozilla.org/show_bug.cgi?id=1302715</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690661</commentid>
    <comment_count>10</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2020-09-22 02:50:54 -0700</bug_when>
    <thetext>Another thing as jake mention https://github.com/w3c/ServiceWorker/issues/882#issuecomment-262754779

if a response is responded with a native builtin stream (from fetch, cache or transferable streams) then service worker can be closed. but if it&apos;s a user constructed readable stream from within the service worker, then as long as there is a destination to pipe the data to, then keep it alive.

if the request is aborted from the controlling page or a download then it can be safe to revoke the keep alive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690666</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-22 04:13:52 -0700</bug_when>
    <thetext>As long as the service worker has a client (page with the same origin), I think it is fine to keep the service worker running if it is fueling a download.

The problem is really when the service worker has no remaining client.
If you close all evil.com pages as a user, the expectation is that no evil.com script is being run. If we keep running the service worker alone, this breaks this assumption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695505</commentid>
    <comment_count>12</comment_count>
    <who name="Pedro Pedrosa">pedrojvpedrosa</who>
    <bug_when>2020-10-07 04:50:29 -0700</bug_when>
    <thetext>Regardless of the above discussion, even if the client page remains open, downloading a service worker generated response (Content-Disposition: attachment) still doesn&apos;t work.

Downloading by clicking on a link simply doesn&apos;t trigger the service worker at all and downloads the URL from the network.

Downloading by creating a hidden iframe does trigger the service worker, and I can see that the service worker responds with a stream and that this stream is actually read all the way through, but the download manager simply doesn&apos;t care and downloads the URL from the network.

This is a show-stopper for my application so I&apos;m forced to tell my users that downloading files this way is not supported by safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695507</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-07 05:00:04 -0700</bug_when>
    <thetext>(In reply to Pedro Pedrosa from comment #12)
&gt; Regardless of the above discussion, even if the client page remains open,
&gt; downloading a service worker generated response (Content-Disposition:
&gt; attachment) still doesn&apos;t work.
&gt; 
&gt; Downloading by clicking on a link simply doesn&apos;t trigger the service worker
&gt; at all and downloads the URL from the network.
&gt; 
&gt; Downloading by creating a hidden iframe does trigger the service worker, and
&gt; I can see that the service worker responds with a stream and that this
&gt; stream is actually read all the way through, but the download manager simply
&gt; doesn&apos;t care and downloads the URL from the network.
&gt; 
&gt; This is a show-stopper for my application so I&apos;m forced to tell my users
&gt; that downloading files this way is not supported by safari.

Right, this is a known limitation that should definitely be fixed.
If the service worker is generating the content (no opaque response), the workaround is to generate a blob from the Response and trigger the download as a blob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695508</commentid>
    <comment_count>14</comment_count>
    <who name="Pedro Pedrosa">pedrojvpedrosa</who>
    <bug_when>2020-10-07 05:03:48 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; Right, this is a known limitation that should definitely be fixed.
&gt; If the service worker is generating the content (no opaque response), the
&gt; workaround is to generate a blob from the Response and trigger the download
&gt; as a blob.

Thank you for quick turn-around.

This won&apos;t work for my application. I&apos;m trying to download files greater than 20gb by downloading them in multiple chunks and then using the SW to concatenate all the chunks together without keeping anything in memory. Using a blob just defeats the purpose and blows up pretty much any machine&apos;s RAM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711643</commentid>
    <comment_count>15</comment_count>
    <who name="">kevodwyer</who>
    <bug_when>2020-12-03 03:08:54 -0800</bug_when>
    <thetext>Just to chime in that we also use a service worker and writable streams for downloading arbitrary large files and video/audio streaming with seeking. 
A resolution to this bug would help us immensely.
It has been possible in Chrome for a number of years and in Firefox behind a flag [1] for a while. 

Thanks for the work to enable WritableStreams in Safari [2]. 


[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1474543  
[2] https://bugs.webkit.org/show_bug.cgi?id=149842</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727702</commentid>
    <comment_count>16</comment_count>
    <who name="David Junger">tffy</who>
    <bug_when>2021-02-10 12:16:50 -0800</bug_when>
    <thetext>I also just wanted to say this bug is a major limitation for my library (https://github.com/Touffy/client-zip) that creates Zip files in the browser. So far, going through a ServiceWorker is the only way I can think of to stream the file without holding it all in memory, but Safari is unable to download the stream from the worker.

You can test it here: https://touffy.me/client-zip/demo/worker
Just reload to make sure the Service Worker is activated, then input some URLs and submit the form. It works fine in Chrome and Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727757</commentid>
    <comment_count>17</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2021-02-10 14:01:25 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; As long as the service worker has a client (page with the same origin), I
&gt; think it is fine to keep the service worker running if it is fueling a
&gt; download.
&gt; 
&gt; The problem is really when the service worker has no remaining client.
&gt; If you close all evil.com pages as a user, the expectation is that no
&gt; evil.com script is being run. If we keep running the service worker alone,
&gt; this breaks this assumption.

I have had some ppl using my StreamSaver.js lib saying that they have experience some technical limitation. The download happens just like any other &quot;normal&quot; download dose in a background thread so they have thought, hey it must be okey to close this tab while i download this 20gb large file since it happens in the background - with no knowledge that a service worker or a main thread is feeding the stream with data.

I have given example/instruction on some best practices using onunload event to warn user from leaving.

so i would like to change your first statement to something like

As long as the service worker has stream fulling the hard drive with data and is not idle (paused for to long) and if the stream/pipeline isn&apos;t aborted or closed then i think it is fine to keep the service worker running. it would be awesome if you wasn&apos;t forced to stay on any page durning the hole time.

Otherwise this have some mixing UX behavior differences that may leave users  thinking that it&apos;s fine to close the page as it might happen in a background thread but really it isn&apos;t

---

little of topic here but... Honestly, I think this hole limited lifetime _almost_ completely stupid and not fully completely thought through, sure it had good intention but it&apos;s a pain in the but! 
There are good usecases too by having long lived service worker and developer have asked for it for a long time. I think everything could have been solved in any other &quot;better&quot; way.
see my comment on this mather: https://github.com/w3c/ServiceWorker/issues/980#issuecomment-486827233

Sure it&apos;s grate that you can kill un-needed or wasteful workers but if developers and user wants keep the worker alive for good reason&apos;s then let them make that decision, how? not sure there are some thoughts floating around in w3c/ServiceWorker#980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727761</commentid>
    <comment_count>18</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2021-02-10 14:07:56 -0800</bug_when>
    <thetext>Oh, and it sucks that i can&apos;t edit my comment cuz i made some spelling misstake :P

Move to github where all the developers are :P
it have better issue handling (it supports markdown, a new good newly added reply feature and a bunch more) and that&apos;s where most developer are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738055</commentid>
    <comment_count>19</comment_count>
    <who name="Florian Ernst">florianernst59</who>
    <bug_when>2021-03-10 07:36:37 -0800</bug_when>
    <thetext>Still a problem here. Safari is now the only desktop browser that has to load entire files in memory if they are downloaded through the a Service Worker.

It&apos;s one of the last limitations to have software-like websites, a real shame it&apos;s not fixed yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738072</commentid>
    <comment_count>20</comment_count>
    <who name="Jimmy Wärting">jimmy</who>
    <bug_when>2021-03-10 08:34:13 -0800</bug_when>
    <thetext>Fyi, the are going to specify how extendable events are given time to execute
https://github.com/w3c/ServiceWorker/issues/1566

in a short summary i think this will mean that we as developer can keep the service worker alive as long as there is any controlling origin tab open. 
and the hard lifetime timer will be loosen up and not be as restrictive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742064</commentid>
    <comment_count>21</comment_count>
    <who name="feelsong">songjunphilip</who>
    <bug_when>2021-03-21 08:31:19 -0700</bug_when>
    <thetext>It&apos;d be very nice for my application if this is fixed! Don&apos;t really want to single out Safari. One weird thing is that I tried to download a file from Safari I get empty download.txt file with Frame load interrupted in error log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786721</commentid>
    <comment_count>22</comment_count>
    <who name="">christian</who>
    <bug_when>2021-08-24 05:55:15 -0700</bug_when>
    <thetext>I just tested this issue with the latest version of Safari 15 and unluckily this is still not fixed. Our application relies heavily on this feature and it is a pity that we have to advise our clients to rather use Chrome based browsers or Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798274</commentid>
    <comment_count>23</comment_count>
    <who name="Gleb Khmyznikov">gleb.khmyznikov</who>
    <bug_when>2021-09-29 05:45:51 -0700</bug_when>
    <thetext>We really miss this feature. It&apos;s a shame that Safari is always a step behind other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798284</commentid>
    <comment_count>24</comment_count>
    <who name="sh-a-v">shershnev.av</who>
    <bug_when>2021-09-29 06:16:15 -0700</bug_when>
    <thetext>It&apos;s impossible to use files on the web without this functionality!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798301</commentid>
    <comment_count>25</comment_count>
    <who name="Aidar">iau87</who>
    <bug_when>2021-09-29 06:38:20 -0700</bug_when>
    <thetext>Could you  fix it ASAP, we need this for our business feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820562</commentid>
    <comment_count>26</comment_count>
      <attachid>446017</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 02:31:34 -0800</bug_when>
    <thetext>Created attachment 446017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820569</commentid>
    <comment_count>27</comment_count>
      <attachid>446020</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 03:01:26 -0800</bug_when>
    <thetext>Created attachment 446020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820575</commentid>
    <comment_count>28</comment_count>
      <attachid>446025</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 04:22:07 -0800</bug_when>
    <thetext>Created attachment 446025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820586</commentid>
    <comment_count>29</comment_count>
      <attachid>446032</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 05:31:20 -0800</bug_when>
    <thetext>Created attachment 446032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820588</commentid>
    <comment_count>30</comment_count>
      <attachid>446033</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 05:37:49 -0800</bug_when>
    <thetext>Created attachment 446033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820621</commentid>
    <comment_count>31</comment_count>
      <attachid>446033</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-06 08:44:56 -0800</bug_when>
    <thetext>Comment on attachment 446033
Patch

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

r=me

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:306
&gt; +    SWFETCH_RELEASE_LOG(&quot;cancelFromClient:%d&quot;, m_isDone);

We should probably the logging better, it is really not obvious what %d is for.

SWFETCH_RELEASE_LOG(&quot;cancelFromClient: m_isDone=%d&quot;, m_isDone);

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:434
&gt; +    // FIXME: We might want to keep the service worker alive until the download ends.

Probably.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:202
&gt; +    auto iterator = m_ongoingDownloads.find(makeObjectIdentifier&lt;FetchIdentifierType&gt;(decoder.destinationID()));

I think this would look nicer (more concise):
```
if (auto download = m_ongoingDownloads.get(makeObjectIdentifier&lt;FetchIdentifierType&gt;(decoder.destinationID()))
    download-&gt;didReceiveMessage(connection, decoder);
```

&gt; Source/WebKit/Scripts/generate-unified-sources.sh:17
&gt; +UnifiedSourceCppFileCount=112

What is this for? Why is it included in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820624</commentid>
    <comment_count>32</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 08:55:33 -0800</bug_when>
    <thetext>Thanks for the review, I will update the patch accordingly.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:434
&gt; &gt; +    // FIXME: We might want to keep the service worker alive until the download ends.
&gt; 
&gt; Probably.

Right, I have not yet fully thought of this case but could live with an extended fixed delay above the current delay. I don&apos;t think it is great to allow a service worker to extend at will their lifetime once user agrees to do a download.

I would hope though that most use cases will be covered without any specific handling, and that other cases could go to the network to finish downloads if need be.

In general, we try to limit the cases of service workers without any client.

&gt; &gt; Source/WebKit/Scripts/generate-unified-sources.sh:17
&gt; &gt; +UnifiedSourceCppFileCount=112
&gt; 
&gt; What is this for? Why is it included in this patch?

Build error due to more than 111 unified files being created by the script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820630</commentid>
    <comment_count>33</comment_count>
      <attachid>446033</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-06 09:20:23 -0800</bug_when>
    <thetext>Comment on attachment 446033
Patch

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

Needs file operations to be on a different run loop.

&gt; Source/WebKit/NetworkProcess/NetworkLoad.cpp:59
&gt; +NetworkLoad::NetworkLoad(NetworkLoadClient&amp; client, NetworkSession&amp; networkSession, const Function&lt;RefPtr&lt;NetworkDataTask&gt;(NetworkDataTaskClient&amp;)&gt;&amp; createTask)

nit: I think this can be a scoped lambda to save an allocation.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:71
&gt; +    FileSystem::deleteFile(m_pendingDownloadLocation);

I don&apos;t think cancelling deletes the existing file.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:85
&gt; +    m_state = State::Running;

Should we do this only if the state was suspended?
Also, this doesn&apos;t do anything to actually start the download.  Should it?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:135
&gt; +    size_t bytesWritten = FileSystem::writeToFile(m_downloadFile, data.data(), data.size());

Does this happen on the main thread?  We need to assert that this is not the main run loop or we will introduce bad hangs.  Same with all file operations here.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:162
&gt; +        m_sandboxExtension-&gt;revoke();
&gt; +        m_sandboxExtension = nullptr;

nit: I feel like std::exchange could be nicely used several places in this file.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:184
&gt; +    FileSystem::deleteFile(m_pendingDownloadLocation);

ditto, I think you shouldn&apos;t delete the file here.

&gt;&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:434
&gt;&gt; +    // FIXME: We might want to keep the service worker alive until the download ends.
&gt; 
&gt; Probably.

Definitely.

&gt;&gt; Source/WebKit/Scripts/generate-unified-sources.sh:17
&gt;&gt; +UnifiedSourceCppFileCount=112
&gt; 
&gt; What is this for? Why is it included in this patch?

This is needed to compile successfully with Xcode.

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:15463
&gt; +				2CAECB6627465AE400AB78D0 /* UnifiedSource112.cpp in Sources */,

nit: you may consider adding more than one so we don&apos;t need to add another one for a little while.  Like 5.

&gt; Tools/WebKitTestRunner/TestController.h:671
&gt; +    long long m_downloadTotalBytesWritten { -1 };

nit: I&apos;d put std::optional&lt;uint64_t&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820675</commentid>
    <comment_count>34</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-06 11:02:57 -0800</bug_when>
    <thetext>I think once the user agrees to download, we should be quite generous with service worker lifetime until the download completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820682</commentid>
    <comment_count>35</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 11:21:02 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #34)
&gt; I think once the user agrees to download, we should be quite generous with
&gt; service worker lifetime until the download completes.

The service worker can easily decide to never end the download (never call controller.close()). AIUI, the main use case with ReadableStream bodies is to stream some large amount of data that is already available to the service worker.
It should not take more than a couple of seconds.
We can always update the heuristics as a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820693</commentid>
    <comment_count>36</comment_count>
    <who name="">mrskman</who>
    <bug_when>2021-12-06 11:43:10 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #35)
&gt; The service worker can easily decide to never end the download (never call
&gt; controller.close()). AIUI, the main use case with ReadableStream bodies is
&gt; to stream some large amount of data that is already available to the service
&gt; worker.
&gt; It should not take more than a couple of seconds.
&gt; We can always update the heuristics as a follow-up.

We use service worker to download and decrypt large files on the fly on users&apos; device. It may take hours, not seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820703</commentid>
    <comment_count>37</comment_count>
    <who name="David Junger">tffy</who>
    <bug_when>2021-12-06 11:47:58 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #35)
&gt; AIUI, the main use case with ReadableStream bodies is to stream some
&gt; large amount of data that is already available to the service worker.
&gt; It should not take more than a couple of seconds.
&gt; We can always update the heuristics as a follow-up.

There are common use cases (packaging separate downloads into a single response, possibly applying some transform) where the ServiceWorker&apos;s download is throttled by upstream network speed. My use case is creating a ZIP archive so the user doesn&apos;t need to click a thousand links to download a thousand files at once.

Or the file could be generated locally by a computationally intensive process which also outputs lots of data (more than you&apos;d want to store in a Blob).

It&apos;s even possible that the download speed will be throttled at the other end (if the user decided to &quot;download to…&quot; a slow USB key or networked device.

In any case, a more general-purpose heuristic may be to timeout the download if the ServiceWorker doesn&apos;t push any data for a while.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820748</commentid>
    <comment_count>38</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-06 13:24:30 -0800</bug_when>
    <thetext>Such a heuristic would still allow a service worker to run forever if it writes 1 byte every 5 seconds.  We don&apos;t want to allow a service worker to run forever when the user allows one download.  Allowing downloads that take less than 10 seconds would certainly be more useful than nothing, and there will always be a demand for more.  This is definitely an interesting problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820764</commentid>
    <comment_count>39</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-06 14:18:43 -0800</bug_when>
    <thetext>(In reply to mrskman from comment #36)
&gt; (In reply to youenn fablet from comment #35)
&gt; We use service worker to download and decrypt large files on the fly on
&gt; users&apos; device. It may take hours, not seconds.

@David, @mrksman, thanks for these use cases.

I think the current heuristic can support these cases as follows:
- Prepare the download data in the background in the service worker (or in a service worker client). If need be, persist it on disk (IDB, Cache API, filesystem API).
- Keep a web page open to keep the service worker open. This page can be used to show the progress of this background task.
- If the page gets closed (and is the last of the same origin), service worker will be stopped. It might resume when a page of the given origin is loaded.
- When background task is finished, data is ready: trigger the download, the heuristic should be tuned to let the download finish, even if there is no service worker client remaining.

In the future, one could also use background fetch to do downloads in the background
and decrypt once fetch is completed to trigger the actual download to save file on disk.

In general, I do not think long lasting loads or downloads in service workers are a great fit. Service workers are assumed to work for short period of times and be stoppable/runnable at will without causing application breakage. 

More specific to long downloads, users might want to pause/resume downloads through their user agent. Service worker downloads do not support this.
Or users might want to stop any JS to run for a given origin (this is the contract between user and its user agent when a user is closing the last page of a given origin). Stopping a service worker would fail the download without a chance to resume it properly once service worker gets relaunched. We would need a new API to properly cover this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820768</commentid>
    <comment_count>40</comment_count>
    <who name="David Junger">tffy</who>
    <bug_when>2021-12-06 14:24:13 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #39)
&gt; I think the current heuristic can support these cases as follows:
&gt; - Prepare the download data in the background in the service worker (or in a
&gt; service worker client). If need be, persist it on disk (IDB, Cache API,
&gt; filesystem API).
&gt; - Keep a web page open to keep the service worker open. This page can be
&gt; used to show the progress of this background task.
&gt; - If the page gets closed (and is the last of the same origin), service
&gt; worker will be stopped. It might resume when a page of the given origin is
&gt; loaded.
&gt; - When background task is finished, data is ready: trigger the download, the
&gt; heuristic should be tuned to let the download finish, even if there is no
&gt; service worker client remaining.

The point of going through the ServiceWorker is sometimes precisely that we don&apos;t want to (or can&apos;t even) keep the whole payload in memory. It&apos;s called streaming. Without it, we could just make a Blob and provide an Object URL to download it, bypassing the ServiceWorker.

The filesystem API would solve some use cases better than a download through the ServiceWorker, but it&apos;s far from ready.

&gt; More specific to long downloads, users might want to pause/resume downloads
&gt; through their user agent. Service worker downloads do not support this.

They could. The WHATWG Streams API supports backpressure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820770</commentid>
    <comment_count>41</comment_count>
    <who name="David Junger">tffy</who>
    <bug_when>2021-12-06 14:28:03 -0800</bug_when>
    <thetext>(also not just backpressure : the ServiceWorker could support HTTP partial content headers, which is how browsers can &quot;resume&quot; a download from an actual HTTP server ; as long as the browser reactivates the ServiceWorker in response to the new download request)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820779</commentid>
    <comment_count>42</comment_count>
    <who name="">mrskman</who>
    <bug_when>2021-12-06 14:42:40 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #39)
&gt; - Prepare the download data in the background in the service worker (or in a
&gt; service worker client). If need be, persist it on disk (IDB, Cache API,
&gt; filesystem API).

That&apos;s what we do now using Blob download. This non-streaming approach has one big disadvantage - you need to store the same data twice on user&apos;s device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820952</commentid>
    <comment_count>43</comment_count>
      <attachid>446142</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-07 02:22:54 -0800</bug_when>
    <thetext>Created attachment 446142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820966</commentid>
    <comment_count>44</comment_count>
      <attachid>446149</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-07 03:06:06 -0800</bug_when>
    <thetext>Created attachment 446149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821479</commentid>
    <comment_count>45</comment_count>
      <attachid>446336</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-08 01:58:24 -0800</bug_when>
    <thetext>Created attachment 446336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821578</commentid>
    <comment_count>46</comment_count>
      <attachid>446336</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-08 09:05:53 -0800</bug_when>
    <thetext>Comment on attachment 446336
Patch

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

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:50
&gt; +    , m_writeQueue(WorkQueue::create(&quot;ServiceWorkerDownloadTask&quot;))

Could we share the queue if there are multiple downloads happening at the same time?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:72
&gt; +    m_writeQueue-&gt;dispatch([protectedThis = Ref { *this }, function = WTFMove(function)]() mutable {

nit: I don&apos;t think this needs to be mutable.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:79
&gt; +    m_writeQueue-&gt;dispatch([this, protectedThis = Ref { *this }] {

ASSERT(isMainRunLoop()); outside, ASSERT(!isMainRunLoop()); inside.

Let&apos;s add these to all the functions here.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:84
&gt; +        FileSystem::deleteFile(m_pendingDownloadLocation);

?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:126
&gt; +        if (allowOverwrite &amp;&amp; FileSystem::fileExists(filename))
&gt; +            FileSystem::deleteFile(filename);

Do we need to delete the file?  Should we fail if we don&apos;t allow overwrite and the file exists?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:222
&gt; +    FileSystem::deleteFile(m_pendingDownloadLocation);

I really don&apos;t think we delete the file when failing or cancelling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821750</commentid>
    <comment_count>47</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-08 13:12:05 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:126
&gt; &gt; +        if (allowOverwrite &amp;&amp; FileSystem::fileExists(filename))
&gt; &gt; +            FileSystem::deleteFile(filename);
&gt; 
&gt; Do we need to delete the file?  Should we fail if we don&apos;t allow overwrite
&gt; and the file exists?
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:222
&gt; &gt; +    FileSystem::deleteFile(m_pendingDownloadLocation);
&gt; 
&gt; I really don&apos;t think we delete the file when failing or cancelling.

That is what we are doing in NetworkDataTaskBlob, it seems good to keep both in sync.
We can change that in both places and add tests, at least for the service worker case, but this seems fine to me as a follow-up.

I do not know what NetworkDataTaskCocoa does when cancel happens (probably worth writing a test if there is not already one, and aligning blob and sw according to NetworkDataTaskCocoa).
The file is apparently deleted after URLSession:downloadTask:didFinishDownloadingToURL: is called from NSURLSession.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822072</commentid>
    <comment_count>48</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-09 04:47:41 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #47)
&gt; &gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:126
&gt; &gt; &gt; +        if (allowOverwrite &amp;&amp; FileSystem::fileExists(filename))
&gt; &gt; &gt; +            FileSystem::deleteFile(filename);
&gt; &gt; 
&gt; &gt; Do we need to delete the file?  Should we fail if we don&apos;t allow overwrite
&gt; &gt; and the file exists?
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:222
&gt; &gt; &gt; +    FileSystem::deleteFile(m_pendingDownloadLocation);
&gt; &gt; 
&gt; &gt; I really don&apos;t think we delete the file when failing or cancelling.

I had a try and file deletion actually fails when trying to do so, so this is a no-op.
I&apos;ll remove the call to deleteFile from the SW code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822073</commentid>
    <comment_count>49</comment_count>
      <attachid>446520</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-09 04:50:13 -0800</bug_when>
    <thetext>Created attachment 446520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822080</commentid>
    <comment_count>50</comment_count>
      <attachid>446524</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-09 05:14:21 -0800</bug_when>
    <thetext>Created attachment 446524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822736</commentid>
    <comment_count>51</comment_count>
      <attachid>446524</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-10 08:53:01 -0800</bug_when>
    <thetext>Comment on attachment 446524
Patch

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

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:63
&gt; +}

maybe call close here to unregister if we haven&apos;t already?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:30
&gt; +#include  &quot;DownloadID.h&quot;

nit: extra space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823444</commentid>
    <comment_count>52</comment_count>
      <attachid>446977</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-13 01:46:32 -0800</bug_when>
    <thetext>Created attachment 446977
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823458</commentid>
    <comment_count>53</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-13 02:42:20 -0800</bug_when>
    <thetext>Committed r286944 (245169@main): &lt;https://commits.webkit.org/245169@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446977.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446017</attachid>
            <date>2021-12-06 02:31:34 -0800</date>
            <delta_ts>2021-12-06 03:01:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211206113131.patch</filename>
            <type>text/plain</type>
            <size>78206</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZmNDEwNzQ1Nzc1Mjhi
YTM2ZmU4MDYzZTJjNjc0M2QyYTcxNDYzYy4uNzg0NzVmM2Q2OTgyYzNkMGUyNTdjYjQxNGY0NTk2
ZTEzY2E0ZjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUGVyc2lzdCBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
IGluIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTBj
Y2JkODE0M2NhMDRiYzZiNTI0ZjgzZThiZDVlN2U3M2Q1NmU4Li5kZjVkYzg2ZDhmZjFhYWQzYTQ3
OWI5M2ZmYjMwOTMxNDhlMTVlMDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEy
LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2Vy
dmljZVdvcmtlciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVy
cG9zZSBpcyB0byBkb3dubG9hZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20g
c2VydmljZSB3b3JrZXIuCisgICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2sgaW50byBkb3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9u
Z29pbmcgYW5kIGNhbiBiZSB1c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFz
IHRoZSBkb3dubG9hZCBOZXR3b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBu
b3QgZXhpc3QsIGNyZWF0ZSBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVz
cG9uZGluZyBOZXR3b3JrTG9hZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3Jr
ZXIgcmVzcG9uc2UgZGF0YS4KKyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2ssIHRoZSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUg
bm90aWZpZWQgdG8gc3RhcnQgc2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2sKKyAgICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
IG1lc3NhZ2VzLiBUaGlzIGFsbG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrIHdpdGhvdXQgYW55IGlzc3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3
b3JrZXIgbGlmZXRpbWUgaXMgbm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4
aXRzIGR1ZSB0byBhbGwgaXRzIGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2ls
bCBmYWlsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOgorCiAyMDIx
LTEyLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c29tZSBsb2dnaW5nIHRvIE5ldHdvcmtSVENQcm92aWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaApp
bmRleCBlYjI2NmI2YzA3ZTY3M2Q5MTY2Y2FjZTZiMzM5MTlkODBlYmJmMzFjLi5kZTllMjMwZjli
ZGI5OWE1ZTgzODdkZmQ5NjAzYWVjNWNhYTNmMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaApA
QCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udmVy
dEZldGNoVG9Eb3dubG9hZCgpID0gMDsKIH07CiAKIHZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJl
ZjxDbGllbnQ+JiYsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5n
JiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwCmluZGV4IGIzY2YyYzczYjIyMzkyNTkzODQ1M2JmOWYwOGI1NDAyNjVj
YzI2ZGIuLmRiNmM5M2I4YmU5MWI5YjkyMjcxMDk0Nzk5ZDBkZGMzZjY0ODJkZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtMjQyLDYgKzI0MiwyMCBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBjb25uZWN0aQogICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OwogfQogCisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hUb0Rv
d25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit7CisgICAgUkVMRUFTRV9MT0coU2Vy
dmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udmVydEZldGNoVG9Eb3du
bG9hZCAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworCisgICAgYXV0byBjbGll
bnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2Uoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklk
ZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcikpOworICAgIGlmICghY2xpZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KFtjbGllbnQgPSBSZWYgeyAqY2xpZW50IH1dIChhdXRvJikgeworICAgICAgICBjbGllbnQtPmNv
bnZlcnRGZXRjaFRvRG93bmxvYWQoKTsKKyAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKK30KKwogdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnRpbnVlRGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKIHsKICAgICBhdXRv
IGNsaWVudCA9IG1fb25nb2luZ0ZldGNoVGFza3MuZ2V0KHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmgKaW5kZXggMGEzMzc5MjQ0ODBlYmY4MjY3NTNlZjU0MWEzZjFjZDRjNjkyNWY0YS4u
MDFiM2FkMDQ5MTVkNGJlMjdiMDFiY2ZmZGM2YjBjZmIyMDhmYzA3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTc3LDYgKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJl
cXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBib29sIGlzU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udmVydEZldGNoVG9Eb3dubG9hZChTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5
MTRjYmZlYWM4NmM3ZS4uMzg1M2YxZTFhMmU2YzZkZTRmMTc4ZTNiYjkzMWM1N2I4ZTJiNzFjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xOTcsNiArMTk3LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdF
U19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsCiAgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbQogCisgICAgTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrCiAgICAgTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrCiAgICAgTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24KICAgICBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGE3ODk3Yjk2MWEz
OWRhZjkyN2M1NGQxMmVmYTNjODk3MTQ5N2IwMmYuLjRlMjZlMGVhMzhlZThhMGQ4MzI5YTQ3Mjcz
NjI0NDQzMWFjMzgyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKQEAgLTg3LDYgKzg3LDcgQEAgJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4KKyQoUFJP
SkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25s
b2FkVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhh
MTZhMTcxYmI3N2Q0NGJkM2I1OGI2NWIuLjA2ZDE0MTc4ZjIzNTUwYzFlODIyOTY1MTQ5NDgyNGRj
ODkxNzAxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtMzkzLDYgKzM5Myw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzUmVwbGll
cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDU3NDM4NjVhNGFjODMyZDNlNWRi
ZDRhZmQ0MzhiZDc1MzJjZDkyMy4uMDQzZjk4MmNhM2FlMmI5MWRiZjFhZWZmNGRhNjBhOTQyNjIz
MzRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMyLDYgKzEzMiw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogCU5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIgXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsIFwKIAlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbiBcCisJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrIFwKIAlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRj
aFRhc2sgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uIFwKIAlOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjkxY2M5ODkyZTgxMDI3ZDljYWVkMWQ5ZGI3
MDYxZDczZTY3NDE3MC4uOGM1NWExYzI2MTI5Zjg2Y2Y2NTRhMGM1YzUyNDJhYzUyOTU4OTc3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRl
ICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjaW5jbHVkZSAiUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJFcnJvcnMuaCIKQEAgLTI2NCw2ICsyNjUsMTIgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW8KICAgICAgICAgICAgIG1fc3dDb250ZXh0Q29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoVGFz
a01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisK
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2s6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBp
ZiAobV9zd0NvbnRleHRDb25uZWN0aW9uKQorICAgICAgICAgICAgbV9zd0NvbnRleHRDb25uZWN0
aW9uLT5kaWRSZWNlaXZlRG93bmxvYWRUYXNrTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9S
RU1PVEVfVUkpCkBAIC02OTUsMTIgKzcwMiw2IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChzdGQ6Om9wdGlvCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgLy8gSW4gY2Fz
ZSBhIHJlc3BvbnNlIGlzIHNlcnZlZCBmcm9tIHNlcnZpY2Ugd29ya2VyLCB3ZSBkbyBub3QgaGF2
ZSB5ZXQgdGhlIGFiaWxpdHkgdG8gY29udmVydCB0aGUgbG9hZC4KLSAgICBpZiAoIW1haW5SZXNv
dXJjZUxvYWRJZGVudGlmaWVyIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9u
c2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5k
b3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKG1fc2Vzc2lvbklELCBkb3dubG9hZElELCBy
ZXF1ZXN0LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gbV9uZXR3b3JrUmVz
b3VyY2VMb2FkZXJzLmdldCgqbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIGlmICgh
bG9hZGVyKSB7CiAgICAgICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBkb3dubG9hZCBhIGJsb2Ig
aGVyZSBsb2FkZXIgY2FuIGJlIG51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwCmluZGV4IGJhYzAyMmFiNDU0MzBmNjUxYjE4OWFjMDEyMDdhMDYwNjA4
YzE2NzEuLjZkZjE0MTA3MzZhYmEyZjJkOWExOTYxNTZjMGIxYmFmYThlNzA0NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC01Niw2ICs1Niwx
MyBAQCBOZXR3b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwg
QmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdAogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShuZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIG1fcGFyYW1ldGVycyk7CiB9CiAK
K05ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBOZXR3
b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3Jr
RGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYgY3JlYXRlVGFzaykKKyAgICA6IG1f
Y2xpZW50KGNsaWVudCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Nlc3Npb24ubmV0
d29ya1Byb2Nlc3MoKSkKKyAgICAsIG1fdGFzayhjcmVhdGVUYXNrKCp0aGlzKSkKK3sKK30KKwog
dm9pZCBOZXR3b3JrTG9hZDo6c3RhcnQoKQogewogICAgIGlmICghbV90YXNrKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCmluZGV4IGMzNzczYzk4Nzg1NTNjZTUz
NGQwNTRhYmZmZGRlYmIyOWVlMDg0ZDIuLmI5MmY5YzYxZTEzNTkwYzQxY2JjMWQ4YjM4MjhkM2Fj
Y2I3NTFiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWQgZmluYWwgOiBwcml2YXRlIE5ldHdv
cmtEYXRhVGFza0NsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgTmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmLCBXZWJDb3JlOjpCbG9iUmVnaXN0
cnlJbXBsKiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIE5ldHdvcmtTZXNzaW9uJik7CisgICAg
TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IEZ1
bmN0aW9uPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYp
OwogICAgIH5OZXR3b3JrTG9hZCgpOwogCiAgICAgdm9pZCBzdGFydCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGJmOGYzNTdkN2E4M2VlNTAyODkxZGIxZTVhYmQ4NDE4NGM2MzM2YzguLjU5ZGUyMjU1Nzc2
NmNhYjExM2JhN2JhN2JmNWZhZjhlOTAzYTUxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4NCw2ICs0
ODQsMTEgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERv
d25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3UKIHsKICAgICBMT0FERVJfUkVMRUFTRV9M
T0coImNvbnZlcnRUb0Rvd25sb2FkOiAoZG93bmxvYWRJRD0lIiBQUkl1NjQgIiwgaGFzTmV0d29y
a0xvYWQ9JWQsIGhhc1Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI9JWQpIiwgZG93bmxvYWRJRC50
b1VJbnQ2NCgpLCAhIW1fbmV0d29ya0xvYWQsICEhbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
KTsKIAorI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyAgICBpZiAobV9zZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrICYmIG1fc2VydmljZVdvcmtlckZldGNoVGFzay0+Y29udmVydFRvRG93bmxvYWQo
bV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLCBkb3dubG9h
ZElELCByZXF1ZXN0LCByZXNwb25zZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAg
Ly8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2Fj
aGUuCiAgICAgaWYgKCFtX25ldHdvcmtMb2FkKSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0
d29ya1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCgp
LCBkb3dubG9hZElELCByZXF1ZXN0LCBtX3BhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzY3ZGVhZGQ4OTM2NTU2YmNkOTc4NzE3ZGMyZDczMzI5ZjM3ZDdiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEb3du
bG9hZE1hbmFnZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6U2VydmljZVdvcmtlckRvd25s
b2FkVGFzayhOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBj
bGllbnQsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5l
Y3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIERvd25sb2FkSUQgZG93bmxvYWRJRCkKKyAgICA6IE5ldHdvcmtEYXRh
VGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpE
b05vdFVzZSwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIo
c2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9mZXRjaElkZW50aWZpZXIo
ZmV0Y2hJZGVudGlmaWVyKQorICAgICwgbV9kb3dubG9hZElEKGRvd25sb2FkSUQpCisgICAgLCBt
X25ldHdvcmtQcm9jZXNzKHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkp
Cit7CisgICAgc2VydmljZVdvcmtlckNvbm5lY3Rpb24ucmVnaXN0ZXJEb3dubG9hZCgqdGhpcyk7
Cit9CisKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6On5TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrKCkKK3sKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAgICAgbV9z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
OjpzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2UmJiBtZXNzYWdlKQoreworICAgIHJldHVybiBt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID8gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+aXBj
Q29ubmVjdGlvbigpLnNlbmQoc3RkOjpmb3J3YXJkPE1lc3NhZ2U+KG1lc3NhZ2UpLCAwKSA6IGZh
bHNlOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNhbmNlbCgpCit7Cisg
ICAgaWYgKG1fZG93bmxvYWRGaWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsK
KyAgICAgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlOworICAgIH0KKyAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKG1fcGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24pOworCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24g
PSBudWxscHRyOworICAgIH0KKworICAgIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IG1fc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlm
aWVyIH0pOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7Cit9CisKK3ZvaWQgU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6cmVzdW1lKCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6
OlJ1bm5pbmc7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6aW52YWxpZGF0
ZUFuZENhbmNlbCgpCit7CisgICAgY2FuY2VsKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgV1RGOjpTdHJpbmcm
IGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQoreworICAgIGlmICghbmV0d29ya1Nlc3Npb24oKSkg
eworICAgICAgICBkaWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5ldHdvcmtEYXRhVGFzazo6c2V0UGVu
ZGluZ0Rvd25sb2FkTG9jYXRpb24oZmlsZW5hbWUsIHsgfSwgYWxsb3dPdmVyd3JpdGUpOworCisg
ICAgQVNTRVJUKCFtX3NhbmRib3hFeHRlbnNpb24pOworICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
KTsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKQorICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b24tPmNvbnN1bWUoKTsKKworICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBGaWxlU3lzdGVtOjpm
aWxlRXhpc3RzKGZpbGVuYW1lKSkKKyAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShmaWxl
bmFtZSk7CisKKyAgICBpZiAoIXNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb252ZXJ0RmV0Y2hUb0Rvd25sb2FkIHsgbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElk
ZW50aWZpZXIgfSkpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZp
cnN0UmVxdWVzdCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Rvd25sb2Fk
RmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24sIEZp
bGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOworICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CisgICAgICAgIGRpZEZh
aWxEb3dubG9hZChjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgYXV0byYg
bWFuYWdlciA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpOworICAgIGF1dG8g
ZG93bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihtYW5hZ2VyLCBtX2Rvd25sb2FkSUQsICp0
aGlzLCAqbmV0d29ya1Nlc3Npb24oKSk7CisgICAgYXV0byogZG93bmxvYWRQdHIgPSBkb3dubG9h
ZC5nZXQoKTsKKyAgICBtYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKG1fZG93bmxv
YWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgIGRvd25sb2FkUHRyLT5kaWRDcmVhdGVEZXN0
aW5hdGlvbihtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgaWYgKG1fZG93bmxvYWRG
aWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNpemVfdCBieXRlc1dyaXR0ZW4gPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmls
ZShtX2Rvd25sb2FkRmlsZSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICBpZiAoYnl0
ZXNXcml0dGVuICE9IGRhdGEuc2l6ZSgpKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZChjYW5j
ZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgaWYgKGF1dG8q
IGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQo
bV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlRGF0YShi
eXRlc1dyaXR0ZW4sIG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4sIDApOworfQorCit2b2lkIFNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiBmb3JtRGF0YSkKK3sKKyAgICAvLyBGSVhNRTogU3VwcG9ydCB3cml0aW5n
IGZvcm1EYXRhIGluIGRvd25sb2Fkcy4KKyAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29y
a2VyLCAiU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhIG5vdCBp
bXBsZW1lbnRlZCIpOworICAgIGRpZEZhaWxEb3dubG9hZChjYW5jZWxsZWRFcnJvcihmaXJzdFJl
cXVlc3QoKSkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZpbmlz
aCgpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisKKyAgICBGaWxlU3lzdGVt
OjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKworICAgIGlmIChtX3NhbmRib3hFeHRl
bnNpb24pIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAg
bV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBkb3du
bG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVu
ZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICBkb3dubG9hZC0+ZGlkRmluaXNoKCk7CisKKyAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJvcih7IH0p
OworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZhaWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7Cisg
ICAgZGlkRmFpbERvd25sb2FkKGVycm9yKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjpkaWRGYWlsRG93bmxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7Cisg
ICAgaWYgKG1fZG93bmxvYWRGaWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsK
KyAgICAgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlOworICAgIH0KKyAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKG1fcGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24pOworCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24g
PSBudWxscHRyOworICAgIH0KKworICAgIGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJv
Y2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisg
ICAgICAgIGRvd25sb2FkLT5kaWRGYWlsKGVycm9yLCBJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisK
KyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJv
cihlcnJvcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGVkMDhlNDJiMGY5ZWNlNmI5NTUwMmM3MDA3ZTBlMDNjZmNlOGIzNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkRvd25sb2FkLmgiCisjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRh
c2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0
Zi9GaWxlU3lzdGVtLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRm9ybURhdGFSZWZlcmVu
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrTG9hZDsKK2NsYXNz
IE5ldHdvcmtQcm9jZXNzOworY2xhc3MgU2FuZGJveEV4dGVuc2lvbjsKK2NsYXNzIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOworCitjbGFzcyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
IDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrPiBjcmVh
dGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvd25sb2FkSUQgZG93bmxvYWRJRCkgeyByZXR1cm4g
YWRvcHRSZWYoKiBuZXcgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhzZXNzaW9uLCBjbGllbnQs
IGNvbm5lY3Rpb24sIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBkb3dubG9hZElEKSk7IH0KKyAgICB+
U2VydmljZVdvcmtlckRvd25sb2FkVGFzaygpOworCisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fZmV0Y2hJZGVudGlmaWVyOyB9
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOworCitwcml2YXRlOgorICAgIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soTmV0d29y
a1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24mLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBEb3dubG9hZElEKTsKKworICAgIC8vIElQQyBN
ZXNzYWdlCisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0
YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBkaWRGaW5pc2goKTsK
KyAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworCisgICAg
Ly8gTmV0d29ya0RhdGFUYXNrCisgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKKyAgICB2b2lkIHJl
c3VtZSgpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIGZpbmFsOworICAg
IFN0YXRlIHN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQg
c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYsIGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBmaW5hbDsKKwor
ICAgIHZvaWQgZGlkRmFpbERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPiBib29sIHNlbmRUb1NlcnZpY2VXb3JrZXIo
TWVzc2FnZSYmKTsKKworICAgIFdlYWtQdHI8V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
PiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOworICAg
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2ZldGNoSWRlbnRpZmllcjsKKyAgICBEb3dubG9h
ZElEIG1fZG93bmxvYWRJRDsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nl
c3M7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbjsKKyAg
ICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9kb3dubG9hZEZpbGUgeyBGaWxlU3lz
dGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CisgICAgaW50NjRfdCBtX2Rvd25sb2Fk
Qnl0ZXNXcml0dGVuIHsgMCB9OworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6U3VzcGVuZGVk
IH07Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFkM2JmYjdjYzMxMDk3OTljYzgwMDFiYmE3MWQ4OWMwZjZmMmQ5MmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisj
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgTm90UmVm
Q291bnRlZCB7CisgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAg
IERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2
NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIGRhdGEpCisgICAgRGlkRmluaXNoKCkKK30KKworI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cAppbmRleCBkNzg3YjUxMGFkNzgwMWI4NzZmZGFmMThiY2VhNjBhMDY3NzQ3ZDdhLi42ODc2NTZl
NTcwMDJkYWFjMWM2YTdhZmZlN2E1MGM5ZTdhM2I4Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Mu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
U2Vzc2lvbi5oIgpAQCAtMzAyLDcgKzMwMywxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmNhbm5vdEhhbmRsZSgpCiAKIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y2FuY2Vs
RnJvbUNsaWVudCgpCiB7Ci0gICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVu
dDoiKTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5jZWxGcm9tQ2xpZW50OiVkIiwgbV9p
c0RvbmUpOworICAgIGlmIChtX2lzRG9uZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2VuZFRv
U2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNh
bmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKQEAgLTQxNiw2ICs0MjAsMjYg
QEAgTmV0d29ya1Nlc3Npb24qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNlc3Npb24oKQogICAg
IHJldHVybiBtX3N3U2VydmVyQ29ubmVjdGlvbiA/IG1fc3dTZXJ2ZXJDb25uZWN0aW9uLT5zZXNz
aW9uKCkgOiBudWxscHRyOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnZl
cnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9h
ZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3ByZWxvYWRlciAgJiYgIW1fcHJlbG9hZGVyLT5p
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
IG1fcHJlbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChtYW5hZ2VyLCBkb3dubG9hZElELCByZXF1
ZXN0LCByZXNwb25zZSk7CisKKyAgICBhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lvbigpOwor
ICAgIGlmICghc2Vzc2lvbiB8fCAhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgbV9pc0RvbmUgPSB0cnVlOworCisgICAgLy8gRklYTUU6IFdl
IG1pZ2h0IHdhbnQgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgYWxpdmUgdW50aWwgdGhlIGRv
d25sb2FkIGVuZHMuCisgICAgYXV0byBzZXJ2aWNlV29ya2VyRG93bmxvYWRMb2FkID0gbWFrZVVu
aXF1ZTxOZXR3b3JrTG9hZD4obV9sb2FkZXIsICpzZXNzaW9uLCBbJl0oYXV0byYgY2xpZW50KSB7
CisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjcmVhdGUoKnNlc3Np
b24sIGNsaWVudCwgKm1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24sIG1fc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVy
LCByZXF1ZXN0LCBkb3dubG9hZElEKTsKKyAgICB9KTsKKworICAgIG1hbmFnZXIuY29udmVydE5l
dHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEb3du
bG9hZExvYWQpLCBbXShhdXRvKSB7IH0sIHsgfSwgcmVxdWVzdCwgcmVzcG9uc2UpOworICAgIHJl
dHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFNXRkVUQ0hf
UkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCmluZGV4IGFi
YTkwNTcyZjA1MWVlZDkwZjJmN2E5ZDUzNTA1ZTFhNGY0ZTk4YzIuLmMzNDU4MDI2N2ZiMzI2OWU2
ZGNiZGNlZmMzNGQwNjgyYzZhMDg4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRj
aFRhc2suaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaD4KQEAgLTU0LDYgKzU1LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIERvd25sb2FkTWFuYWdlcjsKIGNsYXNzIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogY2xhc3MgU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI7CkBAIC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNhbm5vdEhhbmRsZSgpOwogICAgIHZvaWQgY29udGV4dENsb3NlZCgpOwogCisgICAg
Ym9vbCBjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik7CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRTZXRTb3VyY2UgOiBib29s
IHsgTm8sIFllcyB9OwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCmluZGV4IDcxZTBjZjZjNmRjN2JlYTUyMmM5MDYw
MDU1NWY1NzIxNjFjM2MyZjQuLjgxNGU3NGEzYWYzMWNiOGM1YjM4NDIwM2FiNTJjNWY4NjY4NDgw
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZGVyLmNwcApAQCAtMjQyLDYgKzI0MiwxNSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyOjp3YWl0Rm9yQm9keShCb2R5Q2FsbGJhY2smJiBjYWxsYmFjaykKICAgICBt
X2JvZHlDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogfQogCitib29sIFNlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
IG1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3sKKyAgICBpZiAoIW1fbmV0d29ya0xvYWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIG1hbmFnZXIuY29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBzdGQ6
OmV4Y2hhbmdlKG1fbmV0d29ya0xvYWQsIG51bGxwdHIpLCBXVEZNb3ZlKG1fcmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciksIHsgfSwgcmVxdWVzdCwgcmVzcG9uc2UpOworICAgIHJldHVybiB0cnVl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZGVyLmgKaW5kZXggMWU3OGMyY2VmYTE1NDg0MTA0MDYwZjNiMTlkYzUwZTZjYjhmMWViNC4u
ZTkyYzcwOWJiODBiYTg5MjE4NzA4ZjgxMjkyM2JmNzhiYzY2MjRhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKQEAgLTYwLDYgKzYw
LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0
d29ya0xvYWRNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0K
ICAgICBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGUuZW5hYmxlZDsgfQogCisgICAgYm9vbCBjb252ZXJ0VG9Eb3dubG9h
ZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisKIHByaXZhdGU6CiAg
ICAgLy8gTmV0d29ya0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBs
b25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50
KSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKaW5kZXggOGIyMTM4NTJkMGYxMTdkZWY4MTlkNDUyZGI3YjhmY2Y0OWUzNzU2
Yi4uNjg2ZWZlOWNmZTY2YzQ4MGU3MTAzMWIzYTBkZGMwNTM2NDg1ZDEzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTE5Nyw2
ICsxOTcsMjcgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVucmVnaXN0
ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXMKICAgICBtX29uZ29pbmdGZXRjaGVz
LnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OmRpZFJlY2VpdmVEb3dubG9hZFRhc2tNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29uZ29pbmdEb3dubG9hZHMuZmluZChtYWtlT2JqZWN0SWRlbnRpZmllcjxG
ZXRjaElkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpOworICAgIGlmIChp
dGVyYXRvciA9PSBtX29uZ29pbmdEb3dubG9hZHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZWdpc3RlckRv
d25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgQVNTRVJUKCFt
X29uZ29pbmdEb3dubG9hZHMuY29udGFpbnModGFzay5mZXRjaElkZW50aWZpZXIoKSkpOworICAg
IG1fb25nb2luZ0Rvd25sb2Fkcy5hZGQodGFzay5mZXRjaElkZW50aWZpZXIoKSwgdGFzayk7Cit9
CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRG93bmxv
YWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYgdGFzaykKK3sKKyAgICBBU1NFUlQobV9vbmdv
aW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpKTsKKyAgICBtX29u
Z29pbmdEb3dubG9hZHMucmVtb3ZlKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpOworfQorCiBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Ondl
YlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndl
YlByb2Nlc3NJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKaW5kZXggNGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1NzZl
NzUyMTEwZC4uZTgwOGJjYTAyNTcyMTM2NWJmMzQ3NzhmYjU5ZDQwOWViNGE5NzRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmg+CkBAIC02OCwxNCArNjksMTggQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsRmV0Y2go
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRp
ZFJlY2VpdmVGZXRjaFRhc2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZURvd25sb2FkVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CiAKICAgICB2b2lkIHNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Ro
cm90dGxlYWJsZSk7CiAgICAgYm9vbCBpc1Rocm90dGxlYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNUaHJvdHRsZWFibGU7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNo
VGFzayYpOworICAgIHZvaWQgcmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzayYpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50
aWZpZXIoKSBjb25zdDsKKyAgICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJl
dHVybiBtX2Nvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKTsgfQogCiBwcml2YXRlOgogICAgIC8v
IElQQzo6TWVzc2FnZVNlbmRlcgpAQCAtMTAzLDYgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBXZWFrUHRyPFdl
YkNvcmU6OlNXU2VydmVyPiBtX3NlcnZlcjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciwgV2Vha1B0cjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hl
czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2Vha1B0cjxTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrPj4gbV9vbmdvaW5nRG93bmxvYWRzOwogICAgIGJvb2wgbV9pc1Ro
cm90dGxlYWJsZSB7IHRydWUgfTsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFn
ZVByb3h5SUQ7CiAgICAgc2l6ZV90IG1fcHJvY2Vzc2luZ1B1c2hFdmVudHNDb3VudCB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2YzJkZWJhZmQ5
MWQxNmY4ZDc3MDg5M2Y0ODg5NjkwMGRmZTI2ZDIuLjM4MWM2MzRjYmNlNWRhODkwZjBhMjVkOWE5
ZjhmZGY0NjdjMjQxZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMTEyMyw3ICsxMTIzLDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNl
aXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKGNvbm5lY3Rpb24uY29u
bmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKVxuJykKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJV
bmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICBlbGlmIGFzeW5jX21lc3NhZ2VzIG9y
IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUp
IG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfQVNZTkNfRElTUEFUQ0hfTUVTU0FHRV9B
VFRSSUJVVEUpOgogICAgICAgICByZWNlaXZlX3ZhcmlhbnQgPSByZWNlaXZlci5uYW1lIGlmIHJl
Y2VpdmVyLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSkgZWxzZSAnJwpA
QCAtMTE0Niw3ICsxMTQ2LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZl
cik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKGNvbm5lY3Rpb24uaWdub3Jl
SW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlm
IC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdl
ICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVj
b2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0
byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVj
b2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykK
IAogICAgIGlmIG5vdCByZWNlaXZlci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJVVEUpIGFu
ZCAoc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENI
X01FU1NBR0VfQVRUUklCVVRFKSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzZTQzZDNlMTNhNzY3OGY4MTRj
YjZjNDc0MTI3MDlhMzMzZDc5NTRiLi4yMWQ1OTA2NDM0YmNlMGE1OTE2Mjk5MDExOTZkMjkyMzM1
ODg4YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEzMyw3ICsxMzMsOCBAQCBOZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAogCi1OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIEBuby11
bmlmeQorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLmNwcAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXT3JpZ2luU3RvcmUuY3BwIEBuby11bmlmeQpAQCAtODQ4LDYgKzg0OSw3IEBAIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVt
TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIAogUmVtb3RlQWRhcHRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUzOGVhNTcyYjhkODAuLmZmZDk0YmJkYTI2OWMz
OGFhZTVlODhhNGM1YjIxMGFmODdkNTgzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgwLDcgKzg4MCw2IEBACiAJCTQxREM0NTk2
MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0MUUzRDZFMUUwMEIxMUY1MSAv
KiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OUMxRTNEQkIyODAwQjExRjUx
IC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjExRjUxIC8qIExpYldlYlJUQ1Nv
Y2tldENsaWVudC5oICovOyB9OwogCQk0MURENzJBQjI2ODIxNjczMDBBOTBDNzEgLyogTldTUEku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREQ3MkFB
MjY4MjE2NzMwMEE5MEM3MSAvKiBOV1NQSS5oICovOyB9OwotCQk0MURFN0M2QzIyMjc4RjFFMDA1
MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2Vy
dmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2MTA2
MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFu
bmVsLmNwcCAqLzsgfTsKIAkJNDFFMjQyRTAyNkUwQzkwODAwOUE4QzY0IC8qIE5ldHdvcmtSVENV
dGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRTI0MkRGMjZFMEM5MDQwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0aWVzQ29j
b2EubW0gKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFu
bmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVs
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTQxNDMsNiArNDE0Miw5IEBACiAJCTQxRkNE
NkJEMjNDRTA0M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUZDRDZCRjIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQjI3NUE1
NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAv
KiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRBMkQ4QUQwMDYxRjM5MCAvKiBQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTAyOTIsNiArMTAyOTQsOSBAQAogCQk5M0JBMDREOTIxNTFBRENEMDA3
RjQ1NUYgLyogU2VydmljZVdvcmtlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2suY3BwICovLAorCQkJCTQxRkZEMkRCMjc1QTU2MEMwMDUwMUJCRiAvKiBTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8sCisJCQkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJG
IC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gKi8sCiAJCQkJNDE1MTg1
MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovLAogCQkJ
CTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggKi8s
CiAJCQkJNDE1MTg1MzgyMjI3MEY1MzAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
bWVzc2FnZXMuaW4gKi8sCkBAIC0xNTEzOSw3ICsxNTE0NCw2IEBACiAJCQkJQTU1QkE4MjYxQkEy
NUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0JDRjcwREUyNjE1RDA2RTAwRTRGQjcwIC8qIFNjb3Bl
ZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3RDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUx
OEU2OTE3MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg3MjEyQjZB
QjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRD
MThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAKaW5kZXggZjg2MjliZTAwNjUwYjM5MmI5MGM0ZmEzOTE5MWZjOTQ4NDBmYWIwMC4uNTg0NTlm
NmRmOTg1NzU4ZTdiMDE1MzdjYjkxMzUxYTRlMWNiMzkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcApAQCAtMzg5LDYgKzM4OSwxMiBAQCBib29sIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjppc1Rocm90dGxlYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faXNU
aHJvdHRsZWFibGU7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNv
bnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmds
ZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcikp
CisgICAgICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y29udmVydEZldGNoVG9Eb3dubG9h
ZChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKK30KKwogdm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogewogICAgIG1f
Y29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6RGlkRmFpbEhlYXJ0QmVhdENoZWNrIHsgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIgfSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBlN2Rm
N2Q5NDFhY2U5MDY0MTRlY2ZmZjUwYzRiYTQ3OWQxNDY0ZGQ1Li4wNTgwZDk4MzIyOGE3MmJiOGM5
OTQ5Y2EyYjFiNGM3MTE4ZmFjNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
QEAgLTEwNiw2ICsxMDYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmlu
ZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0VGhyb3R0bGVT
dGF0ZShib29sIGlzVGhyb3R0bGVhYmxlKTsKKyAgICB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxv
YWQoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBj
YW5jZWxGZXRjaERvd25sb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uVG9OZXR3b3JrUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBt
X3JlZ2lzdHJhYmxlRG9tYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCA1MjhiZWNhNGVhNGNiNTc1ODZjNWY4NjgxZmRhYWFiMmUzNzEx
ZDJjLi5kNTQxYjgwMzE5MmI4ZDU0ZDE4MjE3ZmIxMTI1NmRmMDA2OTUzMDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNDMsNiArNDMs
OCBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZDb3Vu
dGVkIHsKICAgICBVcGRhdGVQcmVmZXJlbmNlc1N0b3JlKHN0cnVjdCBXZWJLaXQ6OldlYlByZWZl
cmVuY2VzU3RvcmUgc3RvcmUpCiAgICAgQ2xvc2UoKQogICAgIFNldFRocm90dGxlU3RhdGUoYm9v
bCBpc1Rocm90dGxlYWJsZSkKKworICAgIENvbnZlcnRGZXRjaFRvRG93bmxvYWQoV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBpZGVudGlmaWVyKQogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggZmVlOGZlYTdiY2M4ZDU5YzA3
ZTNjNWJhNGQ2MDk1NTJhNGQ2MjhiZi4uYzdkZTQxNjY5MTczYzQ1ODdlMzkxYjIyNjc1ZGJjY2Fi
ZmVhYTI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKQEAgLTg0LDcgKzg1LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0
aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwor
ICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0
KCksIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRp
Zmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0
aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwog
fQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3Jt
RGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCkBAIC0xMDcsNyArMTExLDEw
IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1E
YXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBj
YXNlIG9mIGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2gg
SVBDLgogICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOwogICAgIGlmIChi
bG9iVVJMLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOwor
ICAgICAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEg
eyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNo
SWRlbnRpZmllcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElk
ZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzUsNyArMTQyLDEwIEBA
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUJsb2JDaHVu
ayhjb25zdCB1aW50OF90KiBkYXRhLCBzCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxv
YWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkRmluaXNoQmxvYkxvYWRpbmcoKQpAQCAtMTU3LDcgKzE2NywxMCBAQCB2b2lk
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRG
YWlsIHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWls
IHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAt
MTc0LDcgKzE4NywxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZEZpbmlzaCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZEZpbmlzaCB7
IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9m
ZXRjaElkZW50aWZpZXIpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtMTk0LDYgKzIxMCwxMiBA
QCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNhbmNlbCgpCiAgICAgbV9j
b25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50Ojpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkKK3sKKyAgICBtX2lzRG93bmxvYWQgPSB0
cnVlOworICAgIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Cit9CisKIHZvaWQgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQog
ewogICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlLCBoYXMgY29ubmVjdGlvbiAlZCwg
ZGlkRmluaXNoICVkLCByZXNwb25zZSB0eXBlICVsZCIsICEhbV9jb25uZWN0aW9uLCBtX2RpZEZp
bmlzaCwgc3RhdGljX2Nhc3Q8bG9uZz4obV9yZXNwb25zZURhdGEuaW5kZXgoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmluZGV4IGIzNDdjYWQyYWI1ZjU3MWIxYTBlMjA3
MjA4MDQzNjdkNzcwMTg2MDAuLjAxZjYxMGJkNDMzYTJlOWFmYzlhMWZkZDU0YjA4NDMwYjk4Mzdk
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTU2LDYgKzU2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZE5vdEhhbmRsZSgpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsKCkgZmluYWw7CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIGZpbmFs
OworICAgIHZvaWQgY29udmVydEZldGNoVG9Eb3dubG9hZCgpIGZpbmFsOwogCiAgICAgdm9pZCBj
bGVhbnVwKCk7CiAgICAgCkBAIC04NCw2ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dh
aXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgeyBmYWxzZSB9OwogICAg
IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4s
IFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4sIFVuaXF1ZVJlZjxXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Pj4gbV9yZXNwb25zZURhdGE7CiAgICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzRG93bmxvYWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTcz
NTc1N2QxMzBiMDRkZTQ2MzdhOGU0Yzk0YmVkMDc3MmU5MzZkMS4uZmYxZDNjNTE0OTUzYjhjYTRj
YmJiYjNmZGQ1MTZmMDIyMWQwM2JkYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3du
bG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgcnVubmVyIEFQSSB0byBs
b2cgdGhlIHRvdGFsIGRvd25sb2FkIHNpemUuCisgICAgICAgIFRoaXMgaGVscHMgZW5zdXJpbmcg
dGhhdCBzZXJ2aWNlIHdvcmtlciBsb2FkcyBhcmUgY29ycmVjdGx5IGRvd25sb2FkZWQgYW5kIGRv
IG5vdCByZWx5IG9uIG5ldHdvcmtpbmcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwOgorCiAyMDIxLTEyLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQZXJzaXN0IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgaW4gc2VydmljZSB3
b3JrZXIgcmVnaXN0cmF0aW9uIGRhdGFiYXNlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRl
eCA3Y2VhMDY3NmQyN2I3MjcwMTUwMjk1OWQxN2UwY2I1YzdjZTBlYzZiLi41Zjg1Mjk5MjA2Mzcz
MWUwYzIxMjhiMjBiYmVmNmZiNzcwZGVjYjk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
QEAgLTM5LDYgKzM5LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIERvd25sb2Fk
cy4KICAgICB1bmRlZmluZWQgd2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOwogICAgIHVuZGVm
aW5lZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sZWFuIHZhbHVlKTsKKyAgICB1
bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2xlYW4gdmFsdWUpOwogCiAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSX1RSRUVfU0hPV19BTExfTEFZRVJTICAgICAgICAg
ICAgPSAxOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9UUkVFX1NIT1dfTEFZRVJf
TkVTVElORyAgICAgICAgID0gMjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGUxZmNlMmNhNTFmMWIwMmQ5YzQzN2Iw
OTllZjcxODM2NjE1OTBjYzIuLmEzMjgwZGYxNmNkNDRmNmQwOTgwMDhlNjE5MmE0YzExMzA0YWUy
MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcApAQCAtMTAwOCw2ICsxMDA4LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkKICAgICBwb3N0UGFnZU1lc3Nh
Z2UoIlNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIiwgdmFsdWUpOwogfQogCit2b2lkIFRl
c3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHZhbHVlKQoreworICAgIHBv
c3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxkTG9nRG93bmxvYWRTaXplIiwgdmFsdWUpOworfQorCiB2
b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoSlNTdHJpbmdSZWYgdXNl
cm5hbWUpCiB7CiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRBdXRoZW50aWNhdGlvblVzZXJuYW1l
IiwgdG9XSyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAzMWYxMDZmOTkzYjhiNjc1N2E5NjkyMmQ2YjBj
ZDRjNGM0NDY4MWFkLi41YzZhOTZjYWUwMWY1OTI1NTQ1YjhmMDYwZWFmZGYyZDZiZTFiZjI1IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaApAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoKICAgICAvLyBEb3dubG9hZHMKICAgICBi
b29sIHNob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEZp
bmlzaEFmdGVyRG93bmxvYWQ7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJh
Y2tzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2wpOwogCiAg
ICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEFsbG93
RWRpdGluZzsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGVkMjgwMmZiMWU3NjZkYzVkZTY3YzQ0ZDE1NzY2MTYzMmMzOTMxYTMuLjk5NjFhNjNiOWFl
ZThkMGRlYjI2ZmJhZTI5NzE2NzA0NjFjZWI1YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6bmF2aWdhdGlvbkRpZEJlY29tZURvd25sb2FkU2hhcmVkKFdLRG93bmxvYWRSZWYgZG93bmxv
YWQsIGMKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0VG9VUkwsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURl
c3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lLAotICAgICAgICBudWxscHRyLCAvLyBkaWRX
cml0ZURhdGEKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhLAog
ICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGaW5pc2gsCiAgICAgICAgIFRlc3RD
b250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwKICAgICB9OwpAQCAtMTEwOCw2ICsxMTA4LDggQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICAgICAgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5O
ZXR3b3JrUHJvY2VzcygpOwogICAgIH0KIAorICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRl
biA9IC0xOworCiAgICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0KIApAQCAtMjIzNyw2ICsy
MjM5LDggQEAgV0tTdHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lKFdLRG93bmxvYWRSZWYKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6
ZG93bmxvYWREaWRGaW5pc2goV0tEb3dubG9hZFJlZikKIHsKKyAgICBpZiAobV9zaG91bGRMb2dE
b3dubG9hZFNpemUpCisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFr
ZVN0cmluZygiRG93bmxvYWQgc2l6ZTogIiwgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuLCAi
LlxuIikpOwogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKQogICAgICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBjb21wbGV0ZWQuXG4iKTsK
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsKQEAgLTIyNjks
NiArMjI3MywxOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXSwogICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UobnVsbHB0ciwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YShsb25nIGxv
bmcgdG90YWxCeXRlc1dyaXR0ZW4pCit7CisgICAgaWYgKCFtX3Nob3VsZExvZ0Rvd25sb2FkQ2Fs
bGJhY2tzKQorICAgICAgICByZXR1cm47CisgICAgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVu
ID0gdG90YWxCeXRlc1dyaXR0ZW47Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2Fk
RGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGxvbmcgbG9uZyBieXRlc1dyaXR0
ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNFeHBl
Y3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8
VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRvd25sb2Fk
RGlkV3JpdGVEYXRhKHRvdGFsQnl0ZXNXcml0dGVuKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxl
cjo6d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFz
b24pCiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVz
IHdoZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24gV2luZG93cywgc28KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1Y2Q0OWZhZjMwZGU3OGNjZWFjZDVh
ZDAzYzg0ODZkYzVmYzkxYzEwLi4zMDJjNWQ2ZTVkYWVmNDVmYjIxZjlmZmU5MTI0MjQ1ZTU3ZWNm
ZjRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xOTAsNiAr
MTkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxi
YWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3Mg
PSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dDYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlID0gc2hvdWxkTG9nOyB9CiAgICAgdm9pZCBzZXRT
aG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0Rv
d25sb2FkQ2FsbGJhY2tzID0gc2hvdWxkTG9nOyB9CisgICAgdm9pZCBzZXRTaG91bGRMb2dEb3du
bG9hZFNpemUoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgPSBzaG91
bGRMb2c7IH0KIAogICAgIGJvb2wgaXNDdXJyZW50SW52b2NhdGlvbihUZXN0SW52b2NhdGlvbiog
aW52b2NhdGlvbikgY29uc3QgeyByZXR1cm4gaW52b2NhdGlvbiA9PSBtX2N1cnJlbnRJbnZvY2F0
aW9uLmdldCgpOyB9CiAKQEAgLTQ3Myw3ICs0NzQsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYs
IFdLVVJMUmVzcG9uc2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qgdm9pZCopOwogICAgIGJv
b2wgZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBX
S1VSTFJlcXVlc3RSZWYpOwogICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotICAgIAorCisgICAgdm9pZCBkb3dubG9h
ZERpZFdyaXRlRGF0YShsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4pOworICAgIHN0YXRpYyB2
b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYsIGxvbmcgbG9uZyBieXRlc1dy
aXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNF
eHBlY3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCiAgICAgc3RhdGljIHZv
aWQgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1BhZ2VSZWYsICBXS1Byb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCB3ZWJQcm9jZXNzRGlk
VGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKIApAQCAtNjYzLDYgKzY2Nyw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZCB7IGZhbHNlIH07CiAKICAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkIHsgdHJ1ZSB9OworCisgICAgbG9uZyBsb25nIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3Jp
dHRlbiB7IC0xIH07CisgICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggM2RmYWM1ZmMwMDllNDk2NTQ0NGU2YjQwOTFkYmVlYjJlMjIxZDJi
Yi4uNzJmYTgyYmJjMDEwMjk2ZjA0ZDEzMGVjOWJjNmE0MzU3Y2JkMGU5MyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTUzNyw2ICs1MzcsMTEgQEAgdm9p
ZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tT
dHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U2hvdWxkTG9nRG93
bmxvYWRTaXplIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNo
b3VsZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIpKSB7CiAgICAgICAgIFdLU3Ry
aW5nUmVmIHVzZXJuYW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSh0b1dURlN0
cmluZyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUyNzAxY2M5ZjRkZGNlMzA1MDlhZmY5ZWFjYTJkODI2
OTU3YmQxZWQuLmQ4ZDVkM2Y5MTU3Yzk2YWE5MTYzMzk2Nzg3MTQ5Mjk1NTM1NDE5MWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0xMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNlcnZpY2Ugd29ya2VyIGRvd25sb2FkCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQt
d29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWRvd25sb2FkLmh0dHBzLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQu
aHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIu
anM6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1z
ZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weToKKwogMjAyMS0xMi0wMyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUGVyc2lzdCBOYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlIGluIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiBkYXRhYmFzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIu
anMKaW5kZXggZDVjNjYzMGJiNTExZjVmN2FiMjhlZGQyMWI0MGFhOGZjMzM0NmVmNy4uNjAwMjky
MzlkMzdlMGMyZWZlYTIxYzI1NWRlZjJmYWZmN2JmYjgzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCkBAIC0xLDMg
KzEsMjEgQEAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAg
ICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMoImRvd25sb2FkLWJvZHkiKSkgeworICAg
ICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgiYSBkb3dubG9hZCBib2R5IiwgeyJo
ZWFkZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAg
ICAgICAgZXZlbnQucmVzcG9uZFdpdGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygiZG93bmxvYWQtc3RyZWFtIikp
IHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAg
ICAgIHN0YXJ0OiAoY29udHJvbGxlcikgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGVuY29k
ZXIgPSBuZXcgVGV4dEVuY29kZXIoKTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVl
dWUoZW5jb2Rlci5lbmNvZGUoImEgZmlyc3QgY2h1bmssICIpKTsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KCgpID0+IHsgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCJ0aGVu
IGEgc2Vjb25kIGNodW5rIikpOyB9LCAxMDApOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
KCkgPT4geyBjb250cm9sbGVyLmNsb3NlKCk7IH0sIDIwMCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0sIHsi
aGVhZGVycyIgOiBbWyJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vYmluYXJ5Il1dfSk7Cisg
ICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0LnVybCkpOwogfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHku
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyZWJjMmI4NmU2NmJiMzljOWJjMDlkM2Rh
OTNmNDAzMjQzMWJjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBV
Ukwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25sb2FkLWJvZHkiCitEb3dubG9hZCBzaXpl
OiAxNS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZDJkNDgwYTkxZGFh
YzFjNmQ0ZDBlZWM4OWVjYzI4N2Y0YmE5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOwor
ICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93
bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBk
b1Rlc3QoKQoreworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMv
Iik7CisgICAgd2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rv
d25sb2FkLWJvZHkiOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJl
YW0uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5YTE5ZWJlMzdhMzE0YjNmNTg2MjQ4
YTc2NjdmYTUwYzBmMzlmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2Fk
aW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZG93bmxvYWQtc3RyZWFtIgorRG93bmxv
YWQgc2l6ZTogMzQuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0
cmVhbS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU3
NzNmZTQ2OTY0MDY0MzMwM2JlMDNmYTc0MGRjOGMxY2JhODA4ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLXN0cmVhbS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxi
YWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7
CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVy
LnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKworYXN5
bmMgZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZyYW1lKCJyZXNv
dXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzLyIpOworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9kb3dubG9hZC1zdHJlYW0iOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25s
b2FkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBkMDhlZjg0NmQzMmY2ZWM5MWQ5NDI3M2M5YzI0
ZTBmMGYyY2E2MjAyLi45ZTMzM2Q1NjkxZTk5YmJlNWRlMzMyYjVjYWZiMWU0ZmRlY2EzNzIzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogRG93bmxvYWQgc3RhcnRlZC4KIERvd25sb2FkaW5n
IFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZG93bmxvYWQtYmluYXJ5LnB5IgorRG93bmxv
YWQgc2l6ZTogOS4KIERvd25sb2FkIGNvbXBsZXRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKaW5kZXggOGM5YWRhM2ZjODEyYzM2MDk3YjNkMDM5
NDE2NDA5MzVjYjIyZTc0Ni4uNGE1YWE4N2I0ZWMwZDNkNzNjOTcxNjFlMDYyZmM3ZGM2OGExN2Iy
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCkBA
IC03LDYgKzcsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRy
dWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CiAgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2Vy
LXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFiMmU1MGQ5
MTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3Qt
cHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFy
dGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxv
YWQgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRp
cmVjdC1wcmVsb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVj
dC1wcmVsb2FkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcx
MDVjZDRmMGUyOWNiZTQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9h
ZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUo
dHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30K
KwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dl
YktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtc2NyaXB0LnB5P2Rvd25sb2FkPXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9r
ZW49IiArIHV1aWQ7Cit2YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7CisKK2Z1bmN0aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2Ug
PSAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGlu
ZyIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQor
CitmdW5jdGlvbiB0cmlnZ2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RN
ZXNzYWdlKCJhY3RpdmF0ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJh
dGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRo
ZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24g
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3Bl
IDogdXJsIH0pOworICAgIGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAg
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9
KTsKKyAgICB9CisKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
KyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtj
aGFubmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAg
ICBmZXRjaCh1cmwgKyAiJnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsK
KworICAgIC8vIExvYWQgaWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2Fk
IHdpbGwgc3RhcnQgYW5kIHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3Rs
eSB0aHJvdWdoIHByZWxvYWQgc2luY2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhl
IGV2ZW50LgorICAgIC8vIERvd25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVs
b2FkIi4KKyAgICBjb25zdCBwcm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dl
ckFjdGl2YXRpb24oKTsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQz
YWExYmVjZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2Fk
LWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0
YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNl
cnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3du
bG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmZkZmVjNDJi
YzMyMTIwNzAzMmM5MWY4NDQ4N2IyMDRiZTUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1kb3dubG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tz
KHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0
aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQu
cHk/ZG93bmxvYWQ9eWVzJnRva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5n
KCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5u
ZWwucG9ydDIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
ZGF0YSA9PT0gImFjdGl2YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgfTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAg
IGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworYXN5bmMgZnVuY3Rp
b24gZG9UZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAg
IGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAg
ICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
d29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nKSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2Vi
S2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5q
cyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgfQorCisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDog
Y2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGls
QWN0aXZhdGluZygpOworCisgICAgZmV0Y2godXJsICsgIiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsg
bWV0aG9kOiAnUE9TVCcgfSk7CisKKyAgICAvLyBMb2FkIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5n
IHdvcmtlciwgc28gcHJlbG9hZCB3aWxsIHN0YXJ0IGFuZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUg
ZG93bmxvYWRlZCwgdGhyb3VnaCB0aGUgc2VydmljZSB3b3JrZXIuCisgICAgLy8gRG93bmxvYWQg
c2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2Ug
PSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdv
cmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwppbmRleCBkMDRhNDlhNzhjZDg5MjlhNGZkMGRi
NGFiMGNlYjgwMWEwMTk1MGU4Li42ODUwZTAxZGE5ZjFiNjZmY2NkZjNhOGYxNzg5NjExNzQzYjgx
YmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2Vy
LmpzCkBAIC0yMyw1ICsyMyw3IEBAIG9uYWN0aXZhdGUgPSAoZXZlbnQpID0+IHsKIH0KIAogc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmNsdWRlcygibm8tZmV0Y2gtZXZlbnQtaGFuZGxpbmciKSkKKyAgICAgICAg
cmV0dXJuOwogICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1zY3JpcHQucHkKaW5kZXggMjA2NzgzNmY1NDE3MDNkZTg0ZjA4YjhlYjNlNmNjOGMz
MzgxMzlmZS4uOWE5YWZjZGI0NjUzZmY2N2U1ZDNkYzY1NWJmOGI5OTRlZWM3NzkwNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtc2NyaXB0LnB5CkBAIC0zMSw1ICszMSwxMCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25z
ZSk6CiAgICAgaWYgbm90IHZhbHVlOgogICAgICAgICB2YWx1ZSA9IGIibm90aGluZyIKICAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKworICAg
IGlmIGIiZG93bmxvYWQiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIkNvbnRlbnQtVHlwZSIsIGIiYXBwbGljYXRpb24vYmluYXJ5IikKKyAgICAgICAgcmV0
dXJuIHZhbHVlLmRlY29kZSgpCisKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQt
VHlwZSIsIGIidGV4dC9odG1sIikKICAgICByZXR1cm4gIjxodG1sPjxib2R5PjxzY3JpcHQ+d2lu
ZG93LnZhbHVlID0gJyVzJzs8L3NjcmlwdD48L2JvZHk+PC9odG1sPiIgJSB2YWx1ZS5kZWNvZGUo
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446020</attachid>
            <date>2021-12-06 03:01:26 -0800</date>
            <delta_ts>2021-12-06 04:41:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211206120122.patch</filename>
            <type>text/plain</type>
            <size>78184</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uMTMwNDRiYzFiNDFmNzlkYzYzMTBkODU2OTk4MWI0
MjUxYzBhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFVzZSBlbmQgYml0
cyBpbiB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MTc5NDc1ZjdkZmQwOGYxNDhkMDI1
ODdlNDBjZmQ1OWIwMWFhOGRhLi4zNzI3MWViNGVjOTM3YTMxM2IxNjIzMGQwZjA2MWYyYjc0ZDdi
MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9h
ZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBk
b3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1
c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3
b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBh
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9h
ZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4K
KyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQg
c2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAg
ICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFs
bG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlz
c3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMg
bm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRz
IGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzay5jcHA6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblBy
ZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOgorCiAyMDIxLTEyLTA1ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQWRkIHRo
ZSBlbmNvZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJG
ZXRjaC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmgKaW5kZXggZWIyNjZiNmMwN2U2NzNkOTE2NmNhY2U2YjMzOTE5ZDgwZWJiZjMx
Yy4uZGU5ZTIzMGY5YmRiOTlhNWU4Mzg3ZGZkOTYwM2FlYzVjYWEzZjAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNo
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWROb3RIYW5kbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKSA9IDA7CiB9OwogCiB2b2lkIGRpc3BhdGNo
RmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVy
LCBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBiM2NmMmM3M2IyMjM5MjU5Mzg0NTNi
ZjlmMDhiNTQwMjY1Y2MyNmRiLi5kYjZjOTNiOGJlOTFiOWI5MjI3MTA5NDc5OWQwZGRjM2Y2NDgy
ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTI0Miw2ICsy
NDIsMjAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNhbmNlbEZldGNoKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGkKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpk
ZWZhdWx0TW9kZSgpKTsKIH0KIAorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29u
dmVydEZldGNoVG9Eb3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIFJF
TEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZl
cnRGZXRjaFRvRG93bmxvYWQgJWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKwor
ICAgIGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKHN0ZDo6bWFrZV9wYWly
KGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpKTsKKyAgICBpZiAoIWNsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZShbY2xpZW50ID0gUmVmIHsgKmNsaWVudCB9XSAoYXV0byYpIHsKKyAgICAg
ICAgY2xpZW50LT5jb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCk7CisgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpj
b250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIp
CiB7CiAgICAgYXV0byBjbGllbnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLmdldChzdGQ6Om1ha2Vf
cGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5oCmluZGV4IDBhMzM3OTI0NDgwZWJmODI2NzUzZWY1NDFhM2Yx
Y2Q0YzY5MjVmNGEuLjAxYjNhZDA0OTE1ZDRiZTI3YjAxYmNmZmRjNmIwY2ZiMjA4ZmMwN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNs
aWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4m
JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwg
Ym9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRGZXRjaFRv
RG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Uo
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGIxZGJiYjU1NDlmN2Ew
NTFiY2NiMGRiZTJmMjM5OWFhYmYxYWI5MjEuLjI1OWU0NzJiNTdkMGM2NGZmNzQzNzlmMmM5Mjlj
ODcyY2ZlZmUwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTk3LDYgKzE5Nyw3IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
Q2hhbm5lbAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0KIAorICAgIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzawogICAg
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzawogICAg
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCiAgICAg
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCA1YmE2NGI0NGJlMWU1Nzc1MDg4ZmM2ZTkwNTU5OWM3Y2Q1NzgzY2QzLi40MDRhNzIyYzc2OTAw
MDBhMGYwM2I5YTgwMGRmYzViN2ExZTMwYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC04Nyw2ICs4Nyw3IEBAICQoUFJPSkVDVF9ESVIp
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA0ODZl
ZmQ2YmM4ZDlkMTkzNzBlZjlkZjg1Y2I1YjlkYTJjMzdmYTk1Li5iNTdmOTcwMWE0ZTk5NTYzYzhk
M2EwYjk4OTVlMjQwZmViMDg3N2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM5Niw2ICszOTYsOSBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3Nh
Z2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJ
dGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
U2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25sb2FkVGFz
a01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
U2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4NGZhY2Q1ZDc2ZmMyNGEy
N2IwN2FmNDcwY2MzZjlhM2NkMWMwNjAuLmIzYjcxOTc3YjRhMGFlNDFhMmI2YzBkNzVkMzczN2Yw
OTM5YTczMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMv
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyIFwKIAlOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0Q2hhbm5lbCBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24gXAorCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRv
d25sb2FkVGFzayBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrIFwKIAlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDI5MWNjOTg5MmU4MTAyN2Q5Y2FlZDFk
OWRiNzA2MWQ3M2U2NzQxNzAuLjhjNTVhMWMyNjEyOWY4NmNmNjU0YTBjNWM1MjQyYWM1Mjk1ODk3
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5j
bHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
VGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViRXJyb3JzLmgiCkBAIC0yNjQsNiArMjY1LDEyIEBAIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvCiAgICAgICAgICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRj
aFRhc2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAg
ICAgaWYgKG1fc3dDb250ZXh0Q29ubmVjdGlvbikKKyAgICAgICAgICAgIG1fc3dDb250ZXh0Q29u
bmVjdGlvbi0+ZGlkUmVjZWl2ZURvd25sb2FkVGFza01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9Q
QVlfUkVNT1RFX1VJKQpAQCAtNjk1LDEyICs3MDIsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoc3RkOjpvcHRp
bwogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIC8vIElu
IGNhc2UgYSByZXNwb25zZSBpcyBzZXJ2ZWQgZnJvbSBzZXJ2aWNlIHdvcmtlciwgd2UgZG8gbm90
IGhhdmUgeWV0IHRoZSBhYmlsaXR5IHRvIGNvbnZlcnQgdGhlIGxvYWQuCi0gICAgaWYgKCFtYWlu
UmVzb3VyY2VMb2FkSWRlbnRpZmllciB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJl
c3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+ZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChtX3Nlc3Npb25JRCwgZG93bmxvYWRJ
RCwgcmVxdWVzdCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IG1fbmV0d29y
a1Jlc291cmNlTG9hZGVycy5nZXQoKm1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICBp
ZiAoIWxvYWRlcikgewogICAgICAgICAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gZG93bmxvYWQgYSBi
bG9iIGhlcmUgbG9hZGVyIGNhbiBiZSBudWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBiYWMwMjJhYjQ1NDMwZjY1MWIxODlhYzAxMjA3YTA2
MDYwOGMxNjcxLi42ZGYxNDEwNzM2YWJhMmYyZDlhMTk2MTU2YzBiMWJhZmE4ZTcwNDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNTYsNiAr
NTYsMTMgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGll
bnQsIEJsb2JSZWdpc3RyeUltcGwqIGJsb2JSZWdpc3QKICAgICAgICAgbV90YXNrID0gTmV0d29y
a0RhdGFUYXNrOjpjcmVhdGUobmV0d29ya1Nlc3Npb24sICp0aGlzLCBtX3BhcmFtZXRlcnMpOwog
fQogCitOZXR3b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwg
TmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBGdW5jdGlvbjxSZWZQdHI8TmV0
d29ya0RhdGFUYXNrPihOZXR3b3JrRGF0YVRhc2tDbGllbnQmKT4mIGNyZWF0ZVRhc2spCisgICAg
OiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtTZXNzaW9u
Lm5ldHdvcmtQcm9jZXNzKCkpCisgICAgLCBtX3Rhc2soY3JlYXRlVGFzaygqdGhpcykpCit7Cit9
CisKIHZvaWQgTmV0d29ya0xvYWQ6OnN0YXJ0KCkKIHsKICAgICBpZiAoIW1fdGFzaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAppbmRleCBjMzc3M2M5ODc4NTUz
Y2U1MzRkMDU0YWJmZmRkZWJiMjllZTA4NGQyLi5iOTJmOWM2MWUxMzU5MGM0MWNiYzFkOGIzODI4
ZDNhY2NiNzUxYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5oCkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkIGZpbmFsIDogcHJpdmF0ZSBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIE5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiwgV2ViQ29yZTo6QmxvYlJl
Z2lzdHJ5SW1wbCosIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBOZXR3b3JrU2Vzc2lvbiYpOwor
ICAgIE5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiwgTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBGdW5jdGlvbjxSZWZQdHI8TmV0d29ya0RhdGFUYXNrPihOZXR3b3JrRGF0YVRhc2tDbGllbnQm
KT4mKTsKICAgICB+TmV0d29ya0xvYWQoKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cAppbmRleCBlNTBjZjRhYmJlNTY0ZTRjYTNmYjcyNmNhYTlkNTY5YzU0YjA5ZDcyLi5iODdhZDRk
M2MxY2EwMzEwZGIyM2E3OTIwODllNWQxODdhYzhmOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00ODQs
NiArNDg0LDExIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9h
ZChEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291CiB7CiAgICAgTE9BREVSX1JFTEVB
U0VfTE9HKCJjb252ZXJ0VG9Eb3dubG9hZDogKGRvd25sb2FkSUQ9JSIgUFJJdTY0ICIsIGhhc05l
dHdvcmtMb2FkPSVkLCBoYXNSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPSVkKSIsIGRvd25sb2Fk
SUQudG9VSW50NjQoKSwgISFtX25ldHdvcmtMb2FkLCAhIW1fcmVzcG9uc2VDb21wbGV0aW9uSGFu
ZGxlcik7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgaWYgKG1fc2VydmljZVdv
cmtlckZldGNoVGFzayAmJiBtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2stPmNvbnZlcnRUb0Rvd25s
b2FkKG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKSwgZG93
bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwog
ICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNr
IGNhY2hlLgogICAgIGlmICghbV9uZXR3b3JrTG9hZCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24t
Pm5ldHdvcmtQcm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChzZXNzaW9u
SUQoKSwgZG93bmxvYWRJRCwgcmVxdWVzdCwgbV9wYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2su
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2N2RlYWRkODkzNjU1NmJjZDk3ODcxN2RjMmQ3MzMyOWYzN2Q3YjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKQEAgLTAsMCArMSwyMDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAi
RG93bmxvYWRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSAiV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OlNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYgY2xpZW50LCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpCisgICAgOiBOZXR3b3Jr
RGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6RG9Ob3RVc2UsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fc2VydmljZVdvcmtlckNvbm5lY3Rp
b24oc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAgLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICAsIG1fZmV0Y2hJZGVudGlm
aWVyKGZldGNoSWRlbnRpZmllcikKKyAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQorICAg
ICwgbV9uZXR3b3JrUHJvY2VzcyhzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi5uZXR3b3JrUHJvY2Vz
cygpKQoreworICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLnJlZ2lzdGVyRG93bmxvYWQoKnRo
aXMpOworfQorCitTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjp+U2VydmljZVdvcmtlckRvd25s
b2FkVGFzaygpCit7CisgICAgaWYgKG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAgICAg
IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnVucmVnaXN0ZXJEb3dubG9hZCgqdGhpcyk7Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzazo6c2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYgbWVzc2FnZSkKK3sKKyAgICByZXR1
cm4gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA/IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24t
PmlwY0Nvbm5lY3Rpb24oKS5zZW5kKHN0ZDo6Zm9yd2FyZDxNZXNzYWdlPihtZXNzYWdlKSwgMCkg
OiBmYWxzZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjYW5jZWwoKQor
eworICAgIGlmIChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmls
ZSk7CisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICB9CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdE
b3dubG9hZExvY2F0aW9uKTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRl
bnRpZmllciB9KTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworfQorCit2b2lk
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnJlc3VtZSgpCit7CisgICAgbV9zdGF0ZSA9IFN0
YXRlOjpSdW5uaW5nOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmludmFs
aWRhdGVBbmRDYW5jZWwoKQoreworICAgIGNhbmNlbCgpOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2s6OnNldFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGNvbnN0IFdURjo6U3Ry
aW5nJiBmaWxlbmFtZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyAgICBpZiAoIW5ldHdvcmtTZXNzaW9u
KCkpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVz
dCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOZXR3b3JrRGF0YVRhc2s6OnNl
dFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGZpbGVuYW1lLCB7IH0sIGFsbG93T3ZlcndyaXRlKTsK
KworICAgIEFTU0VSVCghbV9zYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBtX3NhbmRib3hFeHRlbnNp
b24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKSk7CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikKKyAgICAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uLT5jb25zdW1lKCk7CisKKyAgICBpZiAoYWxsb3dPdmVyd3JpdGUgJiYgRmlsZVN5c3Rl
bTo6ZmlsZUV4aXN0cyhmaWxlbmFtZSkpCisgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUo
ZmlsZW5hbWUpOworCisgICAgaWYgKCFzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udmVydEZldGNoVG9Eb3dubG9hZCB7IG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0
Y2hJZGVudGlmaWVyIH0pKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZChjYW5jZWxsZWRFcnJv
cihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kb3du
bG9hZEZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9u
LCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsKKyAgICBpZiAobV9kb3dubG9hZEZp
bGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBk
aWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKworICAgIGF1
dG8mIG1hbmFnZXIgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKTsKKyAgICBh
dXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxEb3dubG9hZD4obWFuYWdlciwgbV9kb3dubG9hZElE
LCAqdGhpcywgKm5ldHdvcmtTZXNzaW9uKCkpOworICAgIGF1dG8qIGRvd25sb2FkUHRyID0gZG93
bmxvYWQuZ2V0KCk7CisgICAgbWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhtX2Rv
d25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKKyAgICBkb3dubG9hZFB0ci0+ZGlkQ3JlYXRl
RGVzdGluYXRpb24obV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7Cit9CisKK3ZvaWQgU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQoreworICAgIGlmIChtX2Rvd25s
b2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzaXplX3QgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVU
b0ZpbGUobV9kb3dubG9hZEZpbGUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgaWYg
KGJ5dGVzV3JpdHRlbiAhPSBkYXRhLnNpemUoKSkgeworICAgICAgICBkaWRGYWlsRG93bmxvYWQo
Y2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4gKz0gYnl0ZXNXcml0dGVuOworICAgIGlmIChh
dXRvKiBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25s
b2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZURh
dGEoYnl0ZXNXcml0dGVuLCBtX2Rvd25sb2FkQnl0ZXNXcml0dGVuLCAwKTsKK30KKwordm9pZCBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgLy8gRklYTUU6IFN1cHBvcnQgd3Jp
dGluZyBmb3JtRGF0YSBpbiBkb3dubG9hZHMuCisgICAgUkVMRUFTRV9MT0dfRVJST1IoU2Vydmlj
ZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YSBu
b3QgaW1wbGVtZW50ZWQiKTsKKyAgICBkaWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmly
c3RSZXF1ZXN0KCkpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRG
aW5pc2goKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworCisgICAgRmlsZVN5
c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsKKyAgICBtX2Rvd25sb2FkRmlsZSA9IEZp
bGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tlKCk7CisgICAg
ICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKGF1dG8g
ZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZCht
X3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgZG93bmxvYWQtPmRpZEZpbmlzaCgpOworCisg
ICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRoRXJyb3Io
eyB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVk
OworICAgIGRpZEZhaWxEb3dubG9hZChlcnJvcik7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6ZGlkRmFpbERvd25sb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQor
eworICAgIGlmIChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmls
ZSk7CisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICB9CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdE
b3dubG9hZExvY2F0aW9uKTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBkb3dubG9hZCA9IG1fbmV0d29y
a1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQp
KQorICAgICAgICBkb3dubG9hZC0+ZGlkRmFpbChlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlKCkp
OworCisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRo
RXJyb3IoZXJyb3IpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlZDA4ZTQyYjBmOWVjZTZiOTU1MDJjNzAwN2UwZTAzY2ZjZThi
MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCkBAIC0wLDAgKzEsOTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKwor
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1
ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0Rh
dGFUYXNrLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRl
IDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVm
ZXJlbmNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0xvYWQ7Citj
bGFzcyBOZXR3b3JrUHJvY2VzczsKK2NsYXNzIFNhbmRib3hFeHRlbnNpb247CitjbGFzcyBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjsKKworY2xhc3MgU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzayA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4g
Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNs
aWVudCwgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpIHsgcmV0
dXJuIGFkb3B0UmVmKCogbmV3IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soc2Vzc2lvbiwgY2xp
ZW50LCBjb25uZWN0aW9uLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCkpOyB9Cisg
ICAgflNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKTsKKworICAgIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoSWRlbnRpZmll
cjsgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5l
dHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgRG93bmxvYWRJRCk7CisKKyAgICAvLyBJ
UEMgTWVzc2FnZQorICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRm9y
bURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkRmluaXNo
KCk7CisgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKwor
ICAgIC8vIE5ldHdvcmtEYXRhVGFzaworICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CisgICAgdm9p
ZCByZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBmaW5hbDsK
KyAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICB2
b2lkIHNldFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBib29sIC8qYWxsb3dPdmVyd3JpdGUqLykgZmluYWw7
CisKKyAgICB2b2lkIGRpZEZhaWxEb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBzZW5kVG9TZXJ2aWNlV29y
a2VyKE1lc3NhZ2UmJik7CisKKyAgICBXZWFrUHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbj4gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsK
KyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9mZXRjaElkZW50aWZpZXI7CisgICAgRG93
bmxvYWRJRCBtX2Rvd25sb2FkSUQ7CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQ
cm9jZXNzOworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmls
ZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3du
bG9hZEJ5dGVzV3JpdHRlbiB7IDAgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3Bl
bmRlZCB9OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZDNiZmI3Y2MzMTA5Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5v
dFJlZkNvdW50ZWQgeworICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikK
KyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwg
aW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAKaW5kZXggZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNjg3
NjU2ZTU3MDAyZGFhYzFjNmE3YWZmZTdhNTBjOWU3YTNiOGY5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRh
c2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb24uaCIKQEAgLTMwMiw3ICszMDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpjYW5ub3RIYW5kbGUoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNh
bmNlbEZyb21DbGllbnQoKQogewotICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21D
bGllbnQ6Iik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDolZCIs
IG1faXNEb25lKTsKKyAgICBpZiAobV9pc0RvbmUpCisgICAgICAgIHJldHVybjsKKwogICAgIHNl
bmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpDYW5jZWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pOwogfQogCkBAIC00MTYsNiArNDIw
LDI2IEBAIE5ldHdvcmtTZXNzaW9uKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzZXNzaW9uKCkK
ICAgICByZXR1cm4gbV9zd1NlcnZlckNvbm5lY3Rpb24gPyBtX3N3U2VydmVyQ29ubmVjdGlvbi0+
c2Vzc2lvbigpIDogbnVsbHB0cjsKIH0KIAorYm9vbCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpj
b252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXImIG1hbmFnZXIsIERvd25sb2FkSUQgZG93
bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9wcmVsb2FkZXIgICYmICFtX3ByZWxvYWRl
ci0+aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBtX3ByZWxvYWRlci0+Y29udmVydFRvRG93bmxvYWQobWFuYWdlciwgZG93bmxvYWRJRCwg
cmVxdWVzdCwgcmVzcG9uc2UpOworCisgICAgYXV0byogc2Vzc2lvbiA9IHRoaXMtPnNlc3Npb24o
KTsKKyAgICBpZiAoIXNlc3Npb24gfHwgIW1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIG1faXNEb25lID0gdHJ1ZTsKKworICAgIC8vIEZJWE1F
OiBXZSBtaWdodCB3YW50IHRvIGtlZXAgdGhlIHNlcnZpY2Ugd29ya2VyIGFsaXZlIHVudGlsIHRo
ZSBkb3dubG9hZCBlbmRzLgorICAgIGF1dG8gc2VydmljZVdvcmtlckRvd25sb2FkTG9hZCA9IG1h
a2VVbmlxdWU8TmV0d29ya0xvYWQ+KG1fbG9hZGVyLCAqc2Vzc2lvbiwgWyZdKGF1dG8mIGNsaWVu
dCkgeworICAgICAgICByZXR1cm4gU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6Y3JlYXRlKCpz
ZXNzaW9uLCBjbGllbnQsICptX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLCBtX3NlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRp
ZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCk7CisgICAgfSk7CisKKyAgICBtYW5hZ2VyLmNvbnZl
cnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwgV1RGTW92ZShzZXJ2aWNlV29ya2Vy
RG93bmxvYWRMb2FkKSwgW10oYXV0bykgeyB9LCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBTV0ZF
VENIX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAppbmRl
eCBhYmE5MDU3MmYwNTFlZWQ5MGYyZjdhOWQ1MzUwNWUxYTRmNGU5OGMyLi5jMzQ1ODAyNjdmYjMy
NjllNmRjYmRjZWZjMzRkMDY4MmM2YTA4ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmg+CkBAIC01NCw2ICs1NSw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmlj
czsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBEb3dubG9hZE1hbmFnZXI7CiBjbGFz
cyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIFNl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOwpAQCAtODUsNiArODcsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjYW5ub3RIYW5kbGUoKTsKICAgICB2b2lkIGNvbnRleHRDbG9zZWQoKTsKIAor
ICAgIGJvb2wgY29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOworCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgU2hvdWxkU2V0U291cmNlIDog
Ym9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAppbmRleCA3MWUwY2Y2YzZkYzdiZWE1MjJj
OTA2MDA1NTVmNTcyMTYxYzNjMmY0Li44MTRlNzRhM2FmMzFjYjhjNWIzODQyMDNhYjUyYzVmODY2
ODQ4MDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHAKQEAgLTI0Miw2ICsyNDIsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvckJvZHkoQm9keUNhbGxiYWNrJiYgY2FsbGJhY2spCiAg
ICAgbV9ib2R5Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAorYm9vbCBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwg
c3RkOjpleGNoYW5nZShtX25ldHdvcmtMb2FkLCBudWxscHRyKSwgV1RGTW92ZShtX3Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5oCmluZGV4IDFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4ZjFl
YjQuLmU5MmM3MDliYjgwYmE4OTIxODcwOGY4MTI5MjNiZjc4YmM2NjI0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC02MCw2
ICs2MCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNz
OyB9CiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlLmVuYWJsZWQ7IH0KIAorICAgIGJvb2wgY29udmVydFRvRG93
bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCiBwcml2YXRl
OgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWdu
ZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0Jl
U2VudCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uY3BwCmluZGV4IDhiMjEzODUyZDBmMTE3ZGVmODE5ZDQ1MmRiN2I4ZmNmNDll
Mzc1NmIuLjY4NmVmZTljZmU2NmM0ODBlNzEwMzFiM2EwZGRjMDUzNjQ4NWQxMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0x
OTcsNiArMTk3LDI3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp1bnJl
Z2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYgdGFzCiAgICAgbV9vbmdvaW5nRmV0
Y2hlcy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZpZXIoKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRSZWNlaXZlRG93bmxvYWRUYXNrTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRG93bmxvYWRzLmZpbmQobWFrZU9iamVjdElkZW50aWZp
ZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKKyAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9vbmdvaW5nRG93bmxvYWRzLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpdGVyYXRvci0+dmFsdWUtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cmVnaXN0
ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAgIEFTU0VS
VCghbV9vbmdvaW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpKTsK
KyAgICBtX29uZ29pbmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVyKCksIHRhc2sp
OworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckRv
d25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgQVNTRVJUKG1f
b25nb2luZ0Rvd25sb2Fkcy5jb250YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7CisgICAg
bV9vbmdvaW5nRG93bmxvYWRzLnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKK30KKwog
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Ojp3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29ubmVjdGlv
bi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDRhMGIxNTM3MWZmOTY3MTU5ZGZlNjYxMjU4ZTQ1
NTc2ZTc1MjExMGQuLmU4MDhiY2EwMjU3MjEzNjViZjM0Nzc4ZmI1OWQ0MDllYjRhOTc0YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oPgpAQCAtNjgsMTQgKzY5LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFRhc2tNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAgICAgdm9pZCBzZXRUaHJvdHRsZVN0YXRlKGJvb2wg
aXNUaHJvdHRsZWFibGUpOwogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25zdCB7IHJldHVy
biBtX2lzVGhyb3R0bGVhYmxlOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRmV0Y2goU2VydmljZVdv
cmtlckZldGNoVGFzayYpOwogICAgIHZvaWQgdW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2smKTsKKyAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25s
b2FkVGFzayYpOworICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2smKTsKIAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJ
ZGVudGlmaWVyKCkgY29uc3Q7CisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkg
eyByZXR1cm4gbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKQEAgLTEwMyw2ICsxMDgsNyBAQCBwcml2YXRlOgogICAg
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgV2Vha1B0
cjxXZWJDb3JlOjpTV1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRj
aElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0Zl
dGNoZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1f
aXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dl
YlBhZ2VQcm94eUlEOwogICAgIHNpemVfdCBtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAwOTMwY2Y5
MTdiYTc5MGU1NzVkODRiOTY5ZWFjMDU4MWY1MmY1MTZlLi44YTQ3NDljZDQ0YmRkNDllOGM2ZTky
NjQwYWE0N2NjMTcxN2JlNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTExMjUsNyArMTEyNSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIo
cmVjZWl2ZXIpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FH
RSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24o
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2Ny
aXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtc
bicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCiAgICAgZWxpZiBhc3luY19tZXNzYWdl
cyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRUUklC
VVRFKSBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0FTWU5DX0RJU1BBVENIX01FU1NB
R0VfQVRUUklCVVRFKToKICAgICAgICAgcmVjZWl2ZV92YXJpYW50ID0gcmVjZWl2ZXIubmFtZSBp
ZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUpIGVsc2Ug
JycKQEAgLTExNDgsNyArMTE0OCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVj
ZWl2ZXIpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9uLmln
bm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNl
bmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2Ug
JXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31c
bicpCiAKICAgICBpZiBub3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1fQVRUUklCVVRF
KSBhbmQgKHN5bmNfbWVzc2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQ
QVRDSF9NRVNTQUdFX0FUVFJJQlVURSkpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDVhODViMDE5NjA0MjAx
NmFiNjg1ZjIwZDRiZWY3M2M0NjI2NTYwNy4uN2VmMTJiYmJjZjc1ODc1MjU5NGUzNTMwMDEzY2I4
MGY3OWQyOWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMzMsNyArMTMzLDggQEAgTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0
aW9uLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKIAot
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBA
bm8tdW5pZnkKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25s
b2FkVGFzay5jcHAKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5pZnkKQEAgLTg3NCw1ICs4NzUsNiBAQCBSZW1v
dGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
MTQxOWM1ZGFiM2Q5NzgyMmEwOWUyNDBiNjVhYjlkN2NhYzg3ZDdkLi5jZWY5NDhkZjMwYjFlNTcy
YzcxN2ZhZmIwN2EwNDY3ODlmM2E3MTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4MSw3ICs4ODEsNiBAQAogCQk0MURDNDU5NjFF
M0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyog
TmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAv
KiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2Nr
ZXRDbGllbnQuaCAqLzsgfTsKIAkJNDFERDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURENzJBQTI2
ODIxNjczMDBBOTBDNzEgLyogTldTUEkuaCAqLzsgfTsKLQkJNDFERTdDNkMyMjI3OEYxRTAwNTMy
QjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAg
LyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5jcHAgKi87IH07CiAJCTQxRTI0MkUwMjZFMEM5MDgwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUUyNDJERjI2RTBDOTA0MDA5QThDNjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29h
Lm1tICovOyB9OwogCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5l
bE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTU4LDYgKzQxNTcsOSBAQAogCQk0MUZDRDZC
RDIzQ0UwNDNGMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUZDRDZCRTIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkYyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUZGRDJEQTI3NUE1NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREIyNzVBNTYw
QzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyog
U2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDZEQzY0QjI0QTJEOEFEMDA2MUYzOTAgLyogUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMzUxLDYgKzEwMzUzLDkgQEAKIAkJOTNCQTA0RDkyMTUxQURDRDAwN0Y0
NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLmNwcCAqLywKKwkJCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzay5oICovLAorCQkJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAv
KiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNTE4NTM2
MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKIAkJCQk0
MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAog
CQkJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1l
c3NhZ2VzLmluICovLApAQCAtMTUyNDIsNyArMTUyNDcsNiBAQAogCQkJCUE1NUJBODI2MUJBMjVD
RkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRS
ZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMThF
NjkxNzE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4NzIxMkI2QUIx
MDBGNDkzRkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQzE4
RkVCRjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJDb3B5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEQzE4MTI0NUI1NDkzNDNCQzk4MTY0QyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDBiODRiYmQzNjhmZWM5ZDRkYTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQuLjgzMjA4MjA2
YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIyYzZhZDY1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKQEAgLTM5MSw2ICszOTEsMTIgQEAgYm9vbCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6aXNUaHJvdHRsZWFibGUoKSBjb25zdAogICAgIHJldHVybiBtX2lzVGhy
b3R0bGVhYmxlOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjb252
ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIGlmIChh
dXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQor
ICAgICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNvbnZlcnRGZXRjaFRvRG93bmxvYWQo
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7Cit9CisKIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZhaWxIZWFydEJlYXRDaGVjayhTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBtX2Nv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OkRpZEZhaWxIZWFydEJlYXRDaGVjayB7IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIH0sIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggZTdkZjdk
OTQxYWNlOTA2NDE0ZWNmZmY1MGM0YmE0NzlkMTQ2NGRkNS4uMDU4MGQ5ODMyMjhhNzJiYjhjOTk0
OWNhMmIxYjRjNzExOGZhYzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBA
IC0xMDYsNiArMTA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcm
JiB1c2VyQWdlbnQpOwogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldFRocm90dGxlU3Rh
dGUoYm9vbCBpc1Rocm90dGxlYWJsZSk7CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY2Fu
Y2VsRmV0Y2hEb3dubG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9y
ZWdpc3RyYWJsZURvbWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KaW5kZXggNTI4YmVjYTRlYTRjYjU3NTg2YzVmODY4MWZkYWFhYjJlMzcxMWQy
Yy4uZDU0MWI4MDMxOTJiOGQ1NGQxODIxN2ZiMTEyNTZkZjAwNjk1MzAyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTQzLDYgKzQzLDgg
QEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRl
ZCB7CiAgICAgVXBkYXRlUHJlZmVyZW5jZXNTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJl
bmNlc1N0b3JlIHN0b3JlKQogICAgIENsb3NlKCkKICAgICBTZXRUaHJvdHRsZVN0YXRlKGJvb2wg
aXNUaHJvdHRsZWFibGUpCisKKyAgICBDb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IGZlZThmZWE3YmNjOGQ1OWMwN2Uz
YzViYTRkNjA5NTUyYTRkNjI4YmYuLmM3ZGU0MTY2OTE3M2M0NTg3ZTM5MWIyMjY3NWRiY2NhYmZl
YWEyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCkBAIC04NCw3ICs4NSwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGlj
X2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgp
LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZp
ZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGlj
X2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURh
dGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRhKQpAQCAtMTA3LDcgKzExMSwxMCBA
QCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0
YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2Fz
ZSBvZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQ
Qy4KICAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwoKTsKICAgICBpZiAoYmxv
YlVSTC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICAgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElk
ZW50aWZpZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM1LDcgKzE0MiwxMCBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmso
Y29uc3QgdWludDhfdCogZGF0YSwgcwogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2Fk
KQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVj
ZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwg
bV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKQEAgLTE1Nyw3ICsxNjcsMTAgQEAgdm9pZCBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwg
bV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmFp
bCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7
IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE3
NCw3ICsxODcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRG
aW5pc2goKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNo
SWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRGaW5pc2ggeyB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE5NCw2ICsyMTAsMTIgQEAg
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQogICAgIG1fY29u
bmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6Y29udmVydEZldGNoVG9Eb3dubG9hZCgpCit7CisgICAgbV9pc0Rvd25sb2FkID0gdHJ1
ZTsKKyAgICBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworfQorCiB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsK
ICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlckZyYW1lTG9hZGVy
Q2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSwgaGFzIGNvbm5lY3Rpb24gJWQsIGRp
ZEZpbmlzaCAlZCwgcmVzcG9uc2UgdHlwZSAlbGQiLCAhIW1fY29ubmVjdGlvbiwgbV9kaWRGaW5p
c2gsIHN0YXRpY19jYXN0PGxvbmc+KG1fcmVzcG9uc2VEYXRhLmluZGV4KCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAppbmRleCBiMzQ3Y2FkMmFiNWY1NzFiMWEwZTIwNzIw
ODA0MzY3ZDc3MDE4NjAwLi4wMWY2MTBiZDQzM2EyZTlhZmM5YTFmZGQ1NGIwODQzMGI5ODM3ZDcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCkBAIC01Niw2ICs1Niw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWROb3RIYW5kbGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbmNl
bCgpIGZpbmFsOwogICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSBmaW5hbDsK
KyAgICB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKSBmaW5hbDsKIAogICAgIHZvaWQgY2xl
YW51cCgpOwogICAgIApAQCAtODQsNiArODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0
aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIHsgZmFsc2UgfTsKICAgICBz
dGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBS
ZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBVbmlxdWVSZWY8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4+
IG1fcmVzcG9uc2VEYXRhOwogICAgIGJvb2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0Rvd25sb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc5NDhh
ZjE5ODdiZmU1YTdjMmY3NDFiYmE2MGMzOWVhMDI1Y2RlODEuLjkxNDM3YTBmNWU4OTcxNDI3YzJk
Y2Y3NmEyNjQ3ZTU2M2EwYzRkY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMi0wNiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxv
YWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIx
NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHJ1bm5lciBBUEkgdG8gbG9n
IHRoZSB0b3RhbCBkb3dubG9hZCBzaXplLgorICAgICAgICBUaGlzIGhlbHBzIGVuc3VyaW5nIHRo
YXQgc2VydmljZSB3b3JrZXIgbG9hZHMgYXJlIGNvcnJlY3RseSBkb3dubG9hZGVkIGFuZCBkbyBu
b3QgcmVseSBvbiBuZXR3b3JraW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9y
IEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA3
Y2VhMDY3NmQyN2I3MjcwMTUwMjk1OWQxN2UwY2I1YzdjZTBlYzZiLi41Zjg1Mjk5MjA2MzczMWUw
YzIxMjhiMjBiYmVmNmZiNzcwZGVjYjk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAg
LTM5LDYgKzM5LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIERvd25sb2Fkcy4K
ICAgICB1bmRlZmluZWQgd2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOwogICAgIHVuZGVmaW5l
ZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sZWFuIHZhbHVlKTsKKyAgICB1bmRl
ZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2xlYW4gdmFsdWUpOwogCiAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUkVOREVSX1RSRUVfU0hPV19BTExfTEFZRVJTICAgICAgICAgICAg
PSAxOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9UUkVFX1NIT1dfTEFZRVJfTkVT
VElORyAgICAgICAgID0gMjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGUxZmNlMmNhNTFmMWIwMmQ5YzQzN2IwOTll
ZjcxODM2NjE1OTBjYzIuLmEzMjgwZGYxNmNkNDRmNmQwOTgwMDhlNjE5MmE0YzExMzA0YWUyMmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMTAwOCw2ICsxMDA4LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hv
dWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkKICAgICBwb3N0UGFnZU1lc3NhZ2Uo
IlNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIiwgdmFsdWUpOwogfQogCit2b2lkIFRlc3RS
dW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHZhbHVlKQoreworICAgIHBvc3RQ
YWdlTWVzc2FnZSgiU2V0U2hvdWxkTG9nRG93bmxvYWRTaXplIiwgdmFsdWUpOworfQorCiB2b2lk
IFRlc3RSdW5uZXI6OnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoSlNTdHJpbmdSZWYgdXNlcm5h
bWUpCiB7CiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIiwg
dG9XSyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAzMWYxMDZmOTkzYjhiNjc1N2E5NjkyMmQ2YjBjZDRj
NGM0NDY4MWFkLi41YzZhOTZjYWUwMWY1OTI1NTQ1YjhmMDYwZWFmZGYyZDZiZTFiZjI1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aApAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoKICAgICAvLyBEb3dubG9hZHMKICAgICBib29s
IHNob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEZpbmlz
aEFmdGVyRG93bmxvYWQ7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tz
KGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2wpOwogCiAgICAg
Ym9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEFsbG93RWRp
dGluZzsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IGVkMjgwMmZiMWU3NjZkYzVkZTY3YzQ0ZDE1NzY2MTYzMmMzOTMxYTMuLjk5NjFhNjNiOWFlZThk
MGRlYjI2ZmJhZTI5NzE2NzA0NjFjZWI1YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
bmF2aWdhdGlvbkRpZEJlY29tZURvd25sb2FkU2hhcmVkKFdLRG93bmxvYWRSZWYgZG93bmxvYWQs
IGMKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0VG9VUkwsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lLAotICAgICAgICBudWxscHRyLCAvLyBkaWRXcml0
ZURhdGEKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhLAogICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGaW5pc2gsCiAgICAgICAgIFRlc3RDb250
cm9sbGVyOjpkb3dubG9hZERpZEZhaWwKICAgICB9OwpAQCAtMTEwOCw2ICsxMTA4LDggQEAgYm9v
bCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0
T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICAgICAgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3
b3JrUHJvY2VzcygpOwogICAgIH0KIAorICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9
IC0xOworCiAgICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0KIApAQCAtMjIzNyw2ICsyMjM5
LDggQEAgV0tTdHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1
Z2dlc3RlZEZpbGVuYW1lKFdLRG93bmxvYWRSZWYKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93
bmxvYWREaWRGaW5pc2goV0tEb3dubG9hZFJlZikKIHsKKyAgICBpZiAobV9zaG91bGRMb2dEb3du
bG9hZFNpemUpCisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0
cmluZygiRG93bmxvYWQgc2l6ZTogIiwgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuLCAiLlxu
IikpOwogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKQogICAgICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBjb21wbGV0ZWQuXG4iKTsKICAg
ICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsKQEAgLTIyNjksNiAr
MjI3MywxOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXSwogICAgIHN0YXRpY19jYXN0PFRlc3RD
b250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UobnVsbHB0ciwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOwog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YShsb25nIGxvbmcg
dG90YWxCeXRlc1dyaXR0ZW4pCit7CisgICAgaWYgKCFtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJh
Y2tzKQorICAgICAgICByZXR1cm47CisgICAgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuID0g
dG90YWxCeXRlc1dyaXR0ZW47Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlk
V3JpdGVEYXRhKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGxvbmcgbG9uZyBieXRlc1dyaXR0ZW4s
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNFeHBlY3Rl
ZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVz
dENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRvd25sb2FkRGlk
V3JpdGVEYXRhKHRvdGFsQnl0ZXNXcml0dGVuKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6
d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24p
CiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdo
ZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24gV2luZG93cywgc28KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1Y2Q0OWZhZjMwZGU3OGNjZWFjZDVhZDAz
Yzg0ODZkYzVmYzkxYzEwLi4zMDJjNWQ2ZTVkYWVmNDVmYjIxZjlmZmU5MTI0MjQ1ZTU3ZWNmZjRk
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xOTAsNiArMTkw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNr
cyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3MgPSBz
aG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dDYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlID0gc2hvdWxkTG9nOyB9CiAgICAgdm9pZCBzZXRTaG91
bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0Rvd25s
b2FkQ2FsbGJhY2tzID0gc2hvdWxkTG9nOyB9CisgICAgdm9pZCBzZXRTaG91bGRMb2dEb3dubG9h
ZFNpemUoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgPSBzaG91bGRM
b2c7IH0KIAogICAgIGJvb2wgaXNDdXJyZW50SW52b2NhdGlvbihUZXN0SW52b2NhdGlvbiogaW52
b2NhdGlvbikgY29uc3QgeyByZXR1cm4gaW52b2NhdGlvbiA9PSBtX2N1cnJlbnRJbnZvY2F0aW9u
LmdldCgpOyB9CiAKQEAgLTQ3Myw3ICs0NzQsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9v
bCBkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdL
VVJMUmVzcG9uc2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qgdm9pZCopOwogICAgIGJvb2wg
ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBXS1VS
TFJlcXVlc3RSZWYpOwogICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VS
ZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotICAgIAorCisgICAgdm9pZCBkb3dubG9hZERp
ZFdyaXRlRGF0YShsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4pOworICAgIHN0YXRpYyB2b2lk
IGRvd25sb2FkRGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYsIGxvbmcgbG9uZyBieXRlc1dyaXR0
ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNFeHBl
Y3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCiAgICAgc3RhdGljIHZvaWQg
d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1BhZ2VSZWYsICBXS1Byb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCB3ZWJQcm9jZXNzRGlkVGVy
bWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKIApAQCAtNjYzLDYgKzY2Nyw5IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZCB7IGZhbHNlIH07CiAKICAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkIHsgdHJ1ZSB9OworCisgICAgbG9uZyBsb25nIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRl
biB7IC0xIH07CisgICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKaW5kZXggM2RmYWM1ZmMwMDllNDk2NTQ0NGU2YjQwOTFkYmVlYjJlMjIxZDJiYi4u
NzJmYTgyYmJjMDEwMjk2ZjA0ZDEzMGVjOWJjNmE0MzU3Y2JkMGU5MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTUzNyw2ICs1MzcsMTEgQEAgdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U2hvdWxkTG9nRG93bmxv
YWRTaXplIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3Vs
ZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIpKSB7CiAgICAgICAgIFdLU3RyaW5n
UmVmIHVzZXJuYW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSh0b1dURlN0cmlu
Zyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg1OWVkYzg2Y2I2ODIxODllOTIzMTIzMGQwNDYzOTEyYTg1
YjRmYjUuLjQ0NGM1ZWRlNzU3ZWU1NGY2ODdiODYxOTMyODBiNjUxYTMwZjJjNjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAyMS0xMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5o
dG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5o
dHRwcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdv
cmtlci1kb3dubG9hZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0
LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJv
dWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk6CisKIDIw
MjEtMTItMDQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q1NTIGFuaW1hdGlvbiBzb3J0aW5nIG1heSBjcmFzaCBkdWUgdG8gQW5pbWF0aW9uTGlzdCBjb3B5
IHVwb24gQ1NTIEFuaW1hdGlvbiByZW1vdmFsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwppbmRleCBkNWM2NjMwYmI1MTFm
NWY3YWIyOGVkZDIxYjQwYWE4ZmMzMzQ2ZWY3Li42MDAyOTIzOWQzN2UwYzJlZmVhMjFjMjU1ZGVm
MmZhZmY3YmZiODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKQEAgLTEsMyArMSwyMSBAQAogc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmNsdWRlcygiZG93bmxvYWQtYm9keSIpKSB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0g
bmV3IFJlc3BvbnNlKCJhIGRvd25sb2FkIGJvZHkiLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1U
eXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25kV2l0
aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50LnJlcXVl
c3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1zdHJlYW0iKSkgeworICAgICAgICBjb25zdCBzdHJl
YW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IChjb250cm9sbGVy
KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2Rlcigp
OworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSgiYSBm
aXJzdCBjaHVuaywgIikpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBjb250
cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoInRoZW4gYSBzZWNvbmQgY2h1bmsiKSk7IH0s
IDEwMCk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIuY2xv
c2UoKTsgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQt
VHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdp
dGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGV2ZW50LnJlc3BvbmRX
aXRoKGZldGNoKGV2ZW50LnJlcXVlc3QudXJsKSk7CiB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJv
ZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjJlYmMyYjg2ZTY2YmIzOWM5YmMwOWQzZGE5M2Y0MDMyNDMxYmNmNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxl
bmFtZSAiZG93bmxvYWQtYm9keSIKK0Rvd25sb2FkIHNpemU6IDE1LgorRG93bmxvYWQgY29tcGxl
dGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkMmQ0ODBhOTFkYWFjMWM2ZDRkMGVlYzg5ZWNjMjg3ZjRi
YTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxk
TG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmlu
aXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdhaXQg
aW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtl
ci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9jYXRp
b24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtYm9keSI7Cit9Citkb1Rl
c3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3Ry
ZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDlhMTllYmUzN2EzMTRiM2Y1ODYyNDhhNzY2N2ZhNTBjMGYzOWZkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICJkb3dubG9hZC1zdHJlYW0iCitEb3dubG9hZCBzaXplOiAzNC4KK0Rvd25sb2Fk
IGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3M2ZlNDY5NjQwNjQzMzAzYmUwM2Zh
NzQwZGM4YzFjYmE4MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0
ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRp
c3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQor
eworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7CisgICAg
d2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2FkLXN0
cmVhbSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGQwOGVmODQ2ZDMyZjZlYzkxZDk0MjczYzljMjRlMGYwZjJjYTYyMDIuLjllMzMzZDU2
OTFlOTliYmU1ZGUzMzJiNWNhZmIxZTRmZGVjYTM3MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1
IEBACiBEb3dubG9hZCBzdGFydGVkLgogRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZp
bGVuYW1lICJkb3dubG9hZC1iaW5hcnkucHkiCitEb3dubG9hZCBzaXplOiA5LgogRG93bmxvYWQg
Y29tcGxldGVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMu
aHRtbAppbmRleCA4YzlhZGEzZmM4MTJjMzYwOTdiM2QwMzk0MTY0MDkzNWNiMjJlNzQ2Li40YTVh
YTg3YjRlYzBkM2Q3M2M5NzE2MWUwNjJmYzdkYzY4YTE3YjI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKQEAgLTcsNiArNyw3IEBACiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25s
b2FkRmluaXNoZWQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFi
bGVNSU1FVHlwZXModHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJv
dWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
LXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3
OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYmE4YzdiZTRlYTY5ODA1MDhhZmZlNzEwNWNkNGYwZTI5Y2JlNDM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0
ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxv
YWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwor
dmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9
eWVzJm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nPXllcyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFt
ZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2Fp
dFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
eworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAg
ICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3Rp
dmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsg
fSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIH0KKworICAgIGFjdGl2
ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0
TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEgfSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAg
IGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmcoKTsKKworICAgIGZldGNoKHVybCArICImdmFsdWU9
dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BPU1QnIH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUs
IHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIHByZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBi
ZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQsIGRpcmVjdGx5IHRocm91Z2ggcHJlbG9hZCBzaW5j
ZSBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IGhhbmRsZSB0aGUgZXZlbnQuCisgICAgLy8gRG93bmxv
YWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0IHByb21p
c2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9U
ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2Fk
LWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFiMmU1
MGQ5MTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVS
TCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1z
Y3JpcHQucHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmZmRmZWM0MmJjMzIxMjA3MDMyYzkxZjg0NDg3YjIw
NGJlNTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSw2NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
d25sb2FkRmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxh
eWFibGVNSU1FVHlwZXModHJ1ZSk7Cit9CisKK3ZhciBhY3RpdmVXb3JrZXI7Cit2YXIgdXVpZCA9
IHRva2VuKCk7Cit2YXIgdXJsID0gIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weT9kb3dubG9hZD15ZXMmdG9rZW49
IiArIHV1aWQ7Cit2YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVs
KCk7CisKK2Z1bmN0aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIp
CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitm
dW5jdGlvbiB0cmlnZ2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNz
YWdlKCJhY3RpdmF0ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVT
ZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4o
KCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDog
dXJsIH0pOworICAgIGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsK
KyAgICB9CisKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAg
ICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFu
bmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBm
ZXRjaCh1cmwgKyAiJnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKwor
ICAgIC8vIExvYWQgaWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdp
bGwgc3RhcnQgYW5kIHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCB0aHJvdWdoIHRo
ZSBzZXJ2aWNlIHdvcmtlci4KKyAgICAvLyBEb3dubG9hZCBzaXplIHNob3VsZCBiZSBzaXplIG9m
ICJ1c2UtcHJlbG9hZCIuCisgICAgY29uc3QgcHJvbWlzZSA9IHdpdGhJZnJhbWUodXJsKTsKKwor
ICAgIHRyaWdnZXJBY3RpdmF0aW9uKCk7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29y
a2VyLmpzCmluZGV4IGQwNGE0OWE3OGNkODkyOWE0ZmQwZGI0YWIwY2ViODAxYTAxOTUwZTguLjY4
NTBlMDFkYTlmMWI2NmZjY2RmM2E4ZjE3ODk2MTE3NDNiODFiYmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMKQEAgLTIzLDUgKzIzLDcgQEAg
b25hY3RpdmF0ZSA9IChldmVudCkgPT4gewogfQogCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2Zl
dGNoJywgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJu
by1mZXRjaC1ldmVudC1oYW5kbGluZyIpKQorICAgICAgICByZXR1cm47CiAgICAgZXZlbnQucmVz
cG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdCkpOwogfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weQppbmRl
eCAyMDY3ODM2ZjU0MTcwM2RlODRmMDhiOGViM2U2Y2M4YzMzODEzOWZlLi45YTlhZmNkYjQ2NTNm
ZjY3ZTVkM2RjNjU1YmY4Yjk5NGVlYzc3OTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtc2NyaXB0LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKQEAgLTMxLDUg
KzMxLDEwIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBpZiBub3QgdmFsdWU6
CiAgICAgICAgIHZhbHVlID0gYiJub3RoaW5nIgogICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIi
Q2FjaGUtQ29udHJvbCIsIGIibm8tY2FjaGUiKQorCisgICAgaWYgYiJkb3dubG9hZCIgaW4gcmVx
dWVzdC5HRVQ6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwg
YiJhcHBsaWNhdGlvbi9iaW5hcnkiKQorICAgICAgICByZXR1cm4gdmFsdWUuZGVjb2RlKCkKKwog
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQog
ICAgIHJldHVybiAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnJXMnOzwvc2Ny
aXB0PjwvYm9keT48L2h0bWw+IiAlIHZhbHVlLmRlY29kZSgpCg==
</data>
<flag name="commit-queue"
          id="471345"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446025</attachid>
            <date>2021-12-06 04:22:07 -0800</date>
            <delta_ts>2021-12-06 05:41:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211206132205.patch</filename>
            <type>text/plain</type>
            <size>84398</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uMTMwNDRiYzFiNDFmNzlkYzYzMTBkODU2OTk4MWI0
MjUxYzBhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFVzZSBlbmQgYml0
cyBpbiB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MTc5NDc1ZjdkZmQwOGYxNDhkMDI1
ODdlNDBjZmQ1OWIwMWFhOGRhLi44ZDYzOWM1NTAyYTk4ZTQ0YWJiZDdmY2NjNmJhYjUxNTc0MmEx
NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9h
ZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBk
b3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1
c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3
b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBh
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9h
ZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4K
KyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQg
c2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAg
ICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFs
bG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlz
c3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMg
bm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRz
IGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAg
IEluY3JlYXNlIHVuaWZpZWQgYnVpbGQgZmlsZXMgdG8gMTEyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBTY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZp
bHRlciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IGViMjY2YjZj
MDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUyMzBmOWJkYjk5YTVlODM4N2Rm
ZDk2MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OCw2ICs1OCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25s
b2FkKCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwg
RmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAKaW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0MDI2NWNjMjZkYi4uZGI2Yzkz
YjhiZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBAIHZvaWQgU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNv
bm5lY3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKKwordm9p
ZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAi
U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkICVsbHUiLCBm
ZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRvIGNsaWVudCA9IG1fb25nb2lu
Z0ZldGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0
Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW2NsaWVudCA9IFJl
ZiB7ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVudC0+Y29udmVydEZldGNoVG9E
b3dubG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworfQorCiB2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAgIGF1dG8gY2xpZW50ID0gbV9v
bmdvaW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIs
IGZldGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRl
eCAwYTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1ZjRhLi4wMWIzYWQwNDkxNWQ0
YmUyN2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJp
bmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbmNlbEZldGNo
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
b250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVGZXRj
aChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dAppbmRleCBiMWRiYmI1NTQ5ZjdhMDUxYmNjYjBkYmUyZjIzOTlhYWJmMWFiOTIx
Li4yNTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwKICAgICBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNWJhNjRiNDRiZTFlNTc3NTA4OGZjNmU5
MDU1OTljN2NkNTc4M2NkMy4uNDA0YTcyMmM3NjkwMDAwYTBmMDNiOWE4MDBkZmM1YjdhMWUzMGJk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDg2ZWZkNmJjOGQ5ZDE5MzcwZWY5ZGY4NWNiNWI5
ZGEyYzM3ZmE5NS4uYjU3Zjk3MDFhNGU5OTU2M2M4ZDNhMGI5ODk1ZTI0MGZlYjA4NzdjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0z
OTYsNiArMzk2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRl
bVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCA2ODRmYWNkNWQ3NmZjMjRhMjdiMDdhZjQ3MGNjM2Y5YTNjZDFjMDYwLi5i
M2I3MTk3N2I0YTBhZTQxYTJiNmMwZDc1ZDM3MzdmMDkzOWE3MzIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ciBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwgXAogCU5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIFwKKwlOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgXAogCU5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAJTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gXAogCU5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFkNzNlNjc0MTcwLi44YzU1YTFj
MjYxMjlmODZjZjY1NGEwYzVjNTI0MmFjNTI5NTg5NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlBpbmdMb2FkLmgiCiAjaW5jbHVk
ZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXJQcm94eS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMjY0
LDYgKzI2NSwxMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICAgICAgbV9zd0Nv
bnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGlmIChtX3N3Q29udGV4dENvbm5lY3Rp
b24pCisgICAgICAgICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVEb3dubG9h
ZFRhc2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkKQEAgLTY5NSwxMiAr
NzAyLDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHN0ZDo6b3B0aW8KIHsKICAgICBSRUxFQVNFX0FTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICAvLyBJbiBjYXNlIGEgcmVzcG9uc2UgaXMgc2VydmVk
IGZyb20gc2VydmljZSB3b3JrZXIsIHdlIGRvIG5vdCBoYXZlIHlldCB0aGUgYWJpbGl0eSB0byBj
b252ZXJ0IHRoZSBsb2FkLgotICAgIGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIgfHwg
cmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29y
a2VyKSB7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0
RG93bmxvYWQobV9zZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlcXVlc3QsIGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgTmV0d29ya1Jl
c291cmNlTG9hZGVyKiBsb2FkZXIgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuZ2V0KCptYWlu
UmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgaWYgKCFsb2FkZXIpIHsKICAgICAgICAgLy8g
SWYgd2UncmUgdHJ5aW5nIHRvIGRvd25sb2FkIGEgYmxvYiBoZXJlIGxvYWRlciBjYW4gYmUgbnVs
bC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXgg
YmFjMDIyYWI0NTQzMGY2NTFiMTg5YWMwMTIwN2EwNjA2MDhjMTY3MS4uNmRmMTQxMDczNmFiYTJm
MmQ5YTE5NjE1NmMwYjFiYWZhOGU3MDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDEzIEBAIE5ldHdvcmtMb2FkOjpOZXR3
b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBCbG9iUmVnaXN0cnlJbXBsKiBibG9i
UmVnaXN0CiAgICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKG5ldHdvcmtT
ZXNzaW9uLCAqdGhpcywgbV9wYXJhbWV0ZXJzKTsKIH0KIAorTmV0d29ya0xvYWQ6Ok5ldHdvcmtM
b2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vz
c2lvbiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4oTmV0d29ya0RhdGFU
YXNrQ2xpZW50Jik+JiBjcmVhdGVUYXNrKQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwg
bV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpKQorICAgICwg
bV90YXNrKGNyZWF0ZVRhc2soKnRoaXMpKQoreworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjpzdGFy
dCgpCiB7CiAgICAgaWYgKCFtX3Rhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmgKaW5kZXggYzM3NzNjOTg3ODU1M2NlNTM0ZDA1NGFiZmZkZGViYjI5ZWUwODRk
Mi4uYjkyZjljNjFlMTM1OTBjNDFjYmMxZDhiMzgyOGQzYWNjYjc1MWIzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFz
cyBOZXR3b3JrTG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBOZXR3b3JrTG9hZChOZXR3
b3JrTG9hZENsaWVudCYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqLCBOZXR3b3JrTG9hZFBh
cmFtZXRlcnMmJiwgTmV0d29ya1Nlc3Npb24mKTsKKyAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9h
ZENsaWVudCYsIE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtE
YXRhVGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+Jik7CiAgICAgfk5ldHdvcmtMb2FkKCk7
CiAKICAgICB2b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTUwY2Y0YWJiZTU2NGU0Y2Ez
ZmI3MjZjYWE5ZDU2OWM1NGIwOWQ3Mi4uYjg3YWQ0ZDNjMWNhMDMxMGRiMjNhNzkyMDg5ZTVkMTg3
YWM4Zjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDg0LDYgKzQ4NCwxMSBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBj
b25zdCBSZXNvdQogewogICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29udmVydFRvRG93bmxvYWQ6
IChkb3dubG9hZElEPSUiIFBSSXU2NCAiLCBoYXNOZXR3b3JrTG9hZD0lZCwgaGFzUmVzcG9uc2VD
b21wbGV0aW9uSGFuZGxlcj0lZCkiLCBkb3dubG9hZElELnRvVUludDY0KCksICEhbV9uZXR3b3Jr
TG9hZCwgISFtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorICAgIGlmIChtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2sgJiYgbV9zZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLT5jb252ZXJ0VG9Eb3dubG9hZChtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQ
cm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNl
KSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYg
dGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29y
a0xvYWQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2Fk
TWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklEKCksIGRvd25sb2FkSUQsIHJlcXVlc3Qs
IG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjdkZWFkZDg5
MzY1NTZiY2Q5Nzg3MTdkYzJkNzMzMjlmMzdkN2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suY3BwCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKKworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldl
YkVycm9ycy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG93bmxv
YWRJRCBkb3dubG9hZElEKQorICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwg
cmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlLCBmYWxzZSwgZmFsc2Up
CisgICAgLCBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKHNlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KQorICAgICwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKKyAgICAsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpCisgICAgLCBtX2ZldGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpCisgICAg
LCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3Moc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSkKK3sKKyAgICBzZXJ2aWNlV29ya2Vy
Q29ubmVjdGlvbi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQoreworICAgIGlmIChtX3Nl
cnZpY2VXb3JrZXJDb25uZWN0aW9uKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9u
LT51bnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNz
YWdlPiBib29sIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnNlbmRUb1NlcnZpY2VXb3JrZXIo
TWVzc2FnZSYmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIG1fc2VydmljZVdvcmtlckNvbm5lY3Rp
b24gPyBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5pcGNDb25uZWN0aW9uKCkuc2VuZChzdGQ6
OmZvcndhcmQ8TWVzc2FnZT4obWVzc2FnZSksIDApIDogZmFsc2U7Cit9CisKK3ZvaWQgU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzazo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBGaWxl
U3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAgICBtX2Rvd25sb2FkRmls
ZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgfQorICAgIEZp
bGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7CisKKyAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2
b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisg
ICAgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CisKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OkNvbXBsZXRlZDsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
OjpyZXN1bWUoKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKK30KKwordm9pZCBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKK3sKKyAgICBj
YW5jZWwoKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZXRQZW5kaW5n
RG93bmxvYWRMb2NhdGlvbihjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3Jp
dGUpCit7CisgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbigpKSB7CisgICAgICAgIGRpZEZhaWxEb3du
bG9hZChjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgTmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihm
aWxlbmFtZSwgeyB9LCBhbGxvd092ZXJ3cml0ZSk7CisKKyAgICBBU1NFUlQoIW1fc2FuZGJveEV4
dGVuc2lvbik7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlKFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpOworICAgIGlmIChtX3NhbmRib3hF
eHRlbnNpb24pCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+Y29uc3VtZSgpOworCisgICAg
aWYgKGFsbG93T3ZlcndyaXRlICYmIEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZmlsZW5hbWUpKQor
ICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGVuYW1lKTsKKworICAgIGlmICghc2Vu
ZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OkNvbnZlcnRGZXRjaFRvRG93bmxvYWQgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBt
X3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KSkgeworICAgICAg
ICBkaWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2Rl
OjpXcml0ZSk7CisgICAgaWYgKG1fZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVy
cm9yKGZpcnN0UmVxdWVzdCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBhdXRvJiBtYW5hZ2VyID0gbV9uZXR3b3JrUHJv
Y2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCk7CisgICAgYXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8
RG93bmxvYWQ+KG1hbmFnZXIsIG1fZG93bmxvYWRJRCwgKnRoaXMsICpuZXR3b3JrU2Vzc2lvbigp
KTsKKyAgICBhdXRvKiBkb3dubG9hZFB0ciA9IGRvd25sb2FkLmdldCgpOworICAgIG1hbmFnZXIu
ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sobV9kb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2Fk
KSk7CisgICAgZG93bmxvYWRQdHItPmRpZENyZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVk
RGF0YUxlbmd0aCkKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUgPT0gRmlsZVN5c3RlbTo6aW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IGJ5
dGVzV3JpdHRlbiA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZG93bmxvYWRGaWxlLCBkYXRh
LmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gZGF0YS5zaXpl
KCkpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVz
dCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Rvd25sb2FkQnl0ZXNXcml0
dGVuICs9IGJ5dGVzV3JpdHRlbjsKKyAgICBpZiAoYXV0byogZG93bmxvYWQgPSBtX25ldHdvcmtQ
cm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkK
KyAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKGJ5dGVzV3JpdHRlbiwgbV9kb3dubG9h
ZEJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6
ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRh
KQoreworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHdyaXRpbmcgZm9ybURhdGEgaW4gZG93bmxvYWRz
LgorICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEgbm90IGltcGxlbWVudGVkIik7CisgICAgZGlk
RmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgpKSk7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBtX3N0YXRlID0g
U3RhdGU6OkNvbXBsZXRlZDsKKworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2Fk
RmlsZSk7CisgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOworCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBu
dWxscHRyOworICAgIH0KKworICAgIGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vz
cy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAg
ICAgIGRvd25sb2FkLT5kaWRGaW5pc2goKTsKKworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
bV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHsgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICBkaWRGYWlsRG93bmxvYWQoZXJy
b3IpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZhaWxEb3dubG9h
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBGaWxl
U3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAgICBtX2Rvd25sb2FkRmls
ZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgfQorICAgIEZp
bGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7CisKKyAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2
b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisg
ICAgaWYgKGF1dG8gZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIo
KS5kb3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgZG93bmxvYWQtPmRpZEZh
aWwoZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSgpKTsKKworICAgIGlmIChtX2NsaWVudCkKKyAg
ICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKGVycm9yKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWQwOGU0
MmIwZjllY2U2Yjk1NTAyYzcwMDdlMGUwM2NmY2U4YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2suaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xhc3MgTmV0d29ya1Byb2Nlc3M7CitjbGFz
cyBTYW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb247
CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgOiBwdWJsaWMgTmV0d29ya0RhdGFU
YXNrIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgRG93bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJlZigqIG5ldyBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVjdGlvbiwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZp
ZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrKCk7CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKworICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6Cisg
ICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRh
VGFza0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIERvd25sb2FkSUQpOworCisgICAgLy8gSVBDIE1lc3NhZ2UKKyAgICB2b2lkIGRpZFJl
Y2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFM
ZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaCgpOworICAgIHZvaWQgZGlkRmFpbChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2sKKyAg
ICB2b2lkIGNhbmNlbCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CisgICAgdm9p
ZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCkgZmluYWw7CisgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWRMb2Nh
dGlvbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwg
Ym9vbCAvKmFsbG93T3ZlcndyaXRlKi8pIGZpbmFsOworCisgICAgdm9pZCBkaWRGYWlsRG93bmxv
YWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IE1lc3NhZ2U+IGJvb2wgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYpOworCisgICAgV2Vh
a1B0cjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IG1fc2VydmljZVdvcmtlckNvbm5l
Y3Rpb247CisgICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29y
a2VySWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIG1fZmV0Y2hJZGVudGlmaWVyOworICAgIERvd25sb2FkSUQgbV9kb3dubG9hZElEOworICAg
IFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKKyAgICBSZWZQdHI8U2FuZGJv
eEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uOworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2Rvd25sb2FkRmlsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUgfTsKKyAgICBpbnQ2NF90IG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4geyAwIH07Cisg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpTdXNwZW5kZWQgfTsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzYmZiN2NjMzEw
OTc5OWNjODAwMWJiYTcxZDg5YzBmNmYyZDkyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMg
LT4gU2VydmljZVdvcmtlckRvd25sb2FkVGFzayBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRGYWls
KFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgp
CisgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAg
ICBEaWRGaW5pc2goKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IGQ3ODdiNTEwYWQ3ODAx
Yjg3NmZkYWYxOGJjZWE2MGEwNjc3NDdkN2EuLjY4NzY1NmU1NzAwMmRhYWMxYzZhN2FmZmU3YTUw
YzllN2EzYjhmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRm9y
bURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29y
a0xvYWQuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCkBAIC0zMDIsNyAr
MzAzLDEwIEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y2Fubm90SGFuZGxlKCkKIAog
dm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjYW5jZWxGcm9tQ2xpZW50KCkKIHsKLSAgICBT
V0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5jZWxGcm9tQ2xpZW50OiIpOworICAgIFNXRkVUQ0hfUkVM
RUFTRV9MT0coImNhbmNlbEZyb21DbGllbnQ6JWQiLCBtX2lzRG9uZSk7CisgICAgaWYgKG1faXNE
b25lKQorICAgICAgICByZXR1cm47CisKICAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRl
bnRpZmllciB9KTsKIH0KIApAQCAtNDE2LDYgKzQyMCwyNiBAQCBOZXR3b3JrU2Vzc2lvbiogU2Vy
dmljZVdvcmtlckZldGNoVGFzazo6c2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc3dTZXJ2ZXJDb25u
ZWN0aW9uID8gbV9zd1NlcnZlckNvbm5lY3Rpb24tPnNlc3Npb24oKSA6IG51bGxwdHI7CiB9CiAK
K2Jvb2wgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRN
YW5hZ2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAg
aWYgKG1fcHJlbG9hZGVyICAmJiAhbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbV9wcmVsb2FkZXItPmNvbnZlcnRU
b0Rvd25sb2FkKG1hbmFnZXIsIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKKworICAg
IGF1dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCk7CisgICAgaWYgKCFzZXNzaW9uIHx8ICFt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBt
X2lzRG9uZSA9IHRydWU7CisKKyAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byBrZWVwIHRo
ZSBzZXJ2aWNlIHdvcmtlciBhbGl2ZSB1bnRpbCB0aGUgZG93bmxvYWQgZW5kcy4KKyAgICBhdXRv
IHNlcnZpY2VXb3JrZXJEb3dubG9hZExvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkPihtX2xv
YWRlciwgKnNlc3Npb24sIFsmXShhdXRvJiBjbGllbnQpIHsKKyAgICAgICAgcmV0dXJuIFNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2s6OmNyZWF0ZSgqc2Vzc2lvbiwgY2xpZW50LCAqbV9zZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbiwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9zZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQp
OworICAgIH0pOworCisgICAgbWFuYWdlci5jb252ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2FkKGRv
d25sb2FkSUQsIFdURk1vdmUoc2VydmljZVdvcmtlckRvd25sb2FkTG9hZCksIFtdKGF1dG8pIHsg
fSwgeyB9LCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgU1dGRVRDSF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXggYWJhOTA1NzJmMDUxZWVkOTBmMmY3YTlk
NTM1MDVlMWE0ZjRlOThjMi4uYzM0NTgwMjY3ZmIzMjY5ZTZkY2JkY2VmYzM0ZDA2ODJjNmEwODg2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgpAQCAtNTQsNiAr
NTUsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
eworY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwog
Y2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlcjsKQEAgLTg1LDYgKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90SGFuZGxlKCk7
CiAgICAgdm9pZCBjb250ZXh0Q2xvc2VkKCk7CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2Fk
KERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIFNob3VsZFNldFNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9p
ZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ci5jcHAKaW5kZXggNzFlMGNmNmM2ZGM3YmVhNTIyYzkwNjAwNTU1ZjU3MjE2MWMzYzJmNC4uODE0
ZTc0YTNhZjMxY2I4YzViMzg0MjAzYWI1MmM1Zjg2Njg0ODAzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCkBAIC0yNDIsNiAr
MjQyLDE1IEBAIHZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OndhaXRGb3JC
b2R5KEJvZHlDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIG1fYm9keUNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayk7CiB9CiAKK2Jvb2wgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6
OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBk
b3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmICghbV9uZXR3
b3JrTG9hZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWFuYWdlci5jb252ZXJ0TmV0
d29ya0xvYWRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIHN0ZDo6ZXhjaGFuZ2UobV9uZXR3b3JrTG9h
ZCwgbnVsbHB0ciksIFdURk1vdmUobV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCBy
ZXF1ZXN0LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaAppbmRleCAxZTc4YzJj
ZWZhMTU0ODQxMDQwNjBmM2IxOWRjNTBlNmNiOGYxZWI0Li5lOTJjNzA5YmI4MGJhODkyMTg3MDhm
ODEyOTIzYmY3OGJjNjYyNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgY29u
c3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25z
dCB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbmFi
bGVkOyB9CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERv
d25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVu
dC4KICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVu
c2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCA4YjIx
Mzg1MmQwZjExN2RlZjgxOWQ0NTJkYjdiOGZjZjQ5ZTM3NTZiLi42ODZlZmU5Y2ZlNjZjNDgwZTcx
MDMxYjNhMGRkYzA1MzY0ODVkMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTk3LDYgKzE5NywyNyBAQCB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2smIHRhcwogICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2suZmV0Y2hJZGVu
dGlmaWVyKCkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZURvd25sb2FkVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0Rv
d25sb2Fkcy5maW5kKG1ha2VPYmplY3RJZGVudGlmaWVyPEZldGNoSWRlbnRpZmllclR5cGU+KGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpKSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0Rv
d25sb2Fkcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaXRlcmF0b3ItPnZhbHVlLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKK30KKwordm9pZCBXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRv
d25sb2FkVGFzayYgdGFzaykKK3sKKyAgICBBU1NFUlQoIW1fb25nb2luZ0Rvd25sb2Fkcy5jb250
YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7CisgICAgbV9vbmdvaW5nRG93bmxvYWRzLmFk
ZCh0YXNrLmZldGNoSWRlbnRpZmllcigpLCB0YXNrKTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OnVucmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrJiB0YXNrKQoreworICAgIEFTU0VSVChtX29uZ29pbmdEb3dubG9hZHMuY29udGFpbnMo
dGFzay5mZXRjaElkZW50aWZpZXIoKSkpOworICAgIG1fb25nb2luZ0Rvd25sb2Fkcy5yZW1vdmUo
dGFzay5mZXRjaElkZW50aWZpZXIoKSk7Cit9CisKIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBj
b25zdAogewogICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRl
eCA0YTBiMTUzNzFmZjk2NzE1OWRmZTY2MTI1OGU0NTU3NmU3NTIxMTBkLi5lODA4YmNhMDI1NzIx
MzY1YmYzNDc3OGZiNTlkNDA5ZWI0YTk3NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaD4KQEAgLTY4LDE0ICs2OSwx
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoVGFza01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
RG93bmxvYWRUYXNrTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAog
ICAgIHZvaWQgc2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0bGVhYmxlKTsKICAgICBib29s
IGlzVGhyb3R0bGVhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsgfQogCiAg
ICAgdm9pZCByZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJik7CisgICAgdm9pZCByZWdp
c3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CiAKICAgICBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0OworICAgIE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5uZXR3
b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCkBA
IC0xMDMsNiArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFdlYWtQdHI8V2ViQ29yZTo6U1dTZXJ2ZXI+IG1fc2Vy
dmVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdGZXRjaGVzOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+PiBt
X29uZ29pbmdEb3dubG9hZHM7CiAgICAgYm9vbCBtX2lzVGhyb3R0bGVhYmxlIHsgdHJ1ZSB9Owog
ICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJRDsKICAgICBzaXplX3Qg
bV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmNwcAppbmRleCAwYTVhMTc0N2ZmMTEwNjIwODBjNDkwNjExYWRjZjYzOTVlZWY5OGVkLi5iYmIz
ZWMyNTI4NzYwZjNlNTg4NTEzMzViNWVjMzcwMmQyYmJmZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5o
IgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1Nj
b3BlLmg+CisjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaD4KICNp
bmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERlY29kZXIuaD4KICNpbmNsdWRlIDx3
dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9C
YXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlm
aWVkLXNvdXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1z
b3VyY2VzLnNoCmluZGV4IGI2ZDQwYWQ5ZTk1NDdiZDQwZGU4NWM5Yzg1YTM1YzFlMjVjZGYxOTEu
LjRmMWFjODNjYjNhMjI2ZWNjZDA3ODM5ODM3OTIzY2JjNDRiYWI5MjMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaApAQCAtMTQsNyAr
MTQsNyBAQCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhlbgogICAgIGZpCiBm
aQogCi1VbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExMQorVW5pZmllZFNvdXJjZUNwcEZpbGVD
b3VudD0xMTIKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBbICQjIC1lcSAwIF07
IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDA5MzBj
ZjkxN2JhNzkwZTU3NWQ4NGI5NjllYWMwNTgxZjUyZjUxNmUuLjhhNDc0OWNkNDRiZGQ0OWU4YzZl
OTI2NDBhYTQ3Y2MxNzE3YmU3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxl
cihyZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKGNvbm5lY3Rp
b24uY29ubmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKVxuJykKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKLSAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01F
U1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVz
Y3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
O1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICBlbGlmIGFzeW5jX21lc3Nh
Z2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVTU0FHRV9BVFRS
SUJVVEUpIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfQVNZTkNfRElTUEFUQ0hfTUVT
U0FHRV9BVFRSSUJVVEUpOgogICAgICAgICByZWNlaXZlX3ZhcmlhbnQgPSByZWNlaXZlci5uYW1l
IGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSkgZWxz
ZSAnJwpAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihy
ZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKGNvbm5lY3Rpb24u
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
I2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBt
ZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgp
KSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2Fn
ZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgp
KSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
fVxuJykKIAogICAgIGlmIG5vdCByZWNlaXZlci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJV
VEUpIGFuZCAoc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0RJ
U1BBVENIX01FU1NBR0VfQVRUUklCVVRFKSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwNWE4NWIwMTk2MDQy
MDE2YWI2ODVmMjBkNGJlZjczYzQ2MjY1NjA3Li43ZWYxMmJiYmNmNzU4NzUyNTk0ZTM1MzAwMTNj
YjgwZjc5ZDI5Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEzMyw3ICsxMzMsOCBAQCBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5l
Y3Rpb24uY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAog
Ci1OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3Bw
IEBuby11bmlmeQorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLmNwcAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIEBuby11bmlmeQpAQCAtODc0LDUgKzg3NSw2IEBAIFJl
bW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4
IDUwODk4ZTQ2MzAxNzMxOTRhZTRlZjdjY2U0M2FlOGViNDY3M2E4NmIuLjJhZDc5NjQ1ZDZlZjY4
M2RhZDRlYjA3NmY1ZGQ3MjQ3MmJmODYwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5p
ZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsNyBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTEtbW0ubQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMTEuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTEyLW1tLm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTMtbW0ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDAxNDE5YzVkYWIzZDk3ODIyYTA5ZTI0MGI2NWFiOWQ3Y2FjODdkN2Qu
LmU0NWE0MmFhOGEwNWM3MGViZjI4ZmYwYWZhOThhYzQ5ZTkzM2Q3YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzk1LDYgKzM5NSw3
IEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAq
LzsgfTsKIAkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUQy
NzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovOyB9OwogCQkxQ0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi87IH07CisJCTJDQUVDQjY2Mjc0NjVBRTQwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTEyLmNwcCAqLzsgfTsKIAkJMUNBRUNCNjcyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovOyB9Owog
CQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MDI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi87IH07CiAJCTFDQUVDQjY5Mjc0NjVB
RTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTA0LmNwcCAqLzsgfTsKQEAgLTg4MSw3ICs4ODIsNiBAQAogCQk0MURDNDU5NjFF
M0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyog
TmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAv
KiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2Nr
ZXRDbGllbnQuaCAqLzsgfTsKIAkJNDFERDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURENzJBQTI2
ODIxNjczMDBBOTBDNzEgLyogTldTUEkuaCAqLzsgfTsKLQkJNDFERTdDNkMyMjI3OEYxRTAwNTMy
QjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAg
LyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5jcHAgKi87IH07CiAJCTQxRTI0MkUwMjZFMEM5MDgwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUUyNDJERjI2RTBDOTA0MDA5QThDNjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29h
Lm1tICovOyB9OwogCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5l
bE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0zMTg2LDYgKzMxODYsNyBAQAogCQkxQ0E4Qjk0
NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I1RDI3NDY1
QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBV
bmlmaWVkU291cmNlMTA5LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDkuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMS5jcHA7IHBhdGggPSAi
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTExLmNw
cCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTJDQUVDQjVFMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVu
aWZpZWRTb3VyY2UxMTIuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEw
OC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA4LmNwcDsgcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDguY3Bw
Ijsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNjAyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5p
ZmllZFNvdXJjZTExMC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTEwLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDQuY3BwOyBwYXRoID0gIkRl
cml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNC5jcHAi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDE1OCw2ICs0MTU5LDkg
QEAKIAkJNDFGQ0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8q
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RkZEMkRCMjc1QTU2MEMwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2subWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFF
NTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEyRDhBRDAwNjFGMzkw
IC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjAyLDYgKzgyMDYsNyBAQAogCQkJCTFDQUVDQjVE
Mjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLywKIAkJCQkxQ0FFQ0I2
MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi8sCiAJCQkJMUNBRUNC
NUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovLAorCQkJCTJDQUVD
QjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gInVuaWZpZWQtc291cmNlcyI7CiAJCQlwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dl
YktpdC91bmlmaWVkLXNvdXJjZXMiOwpAQCAtMTAzNTEsNiArMTAzNTYsOSBAQAogCQk5M0JBMDRE
OTIxNTFBRENEMDA3RjQ1NUYgLyogU2VydmljZVdvcmtlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwICovLAorCQkJCTQxRkZEMkRCMjc1QTU2MEMwMDUw
MUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8sCisJCQkJNDFGRkQyREMyNzVB
NkE5NDAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gKi8s
CiAJCQkJNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
Y3BwICovLAogCQkJCTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmggKi8sCiAJCQkJNDE1MTg1MzgyMjI3MEY1MzAwNTQzMEM2IC8qIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2subWVzc2FnZXMuaW4gKi8sCkBAIC0xNTI0Miw3ICsxNTI1MCw2IEBACiAJCQkJ
QTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0JDRjcwREUyNjE1RDA2RTAwRTRG
QjcwIC8qIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3RDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxOEU2OTE3MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUz
MkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ2MCw3
IEBACiAJCQkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjgyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNBRUNCNjYyNzQ2
NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFF
NzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAppbmRleCAwYjg0YmJkMzY4ZmVjOWQ0ZGE5NjdiZmUzMTQwNjBjODAyM2JiNGRkLi44MzIwODIw
NmM2NGE2NjJhMjc5ODczZjljNjZkOTQyMmM2YWQ2NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCkBAIC0zOTEsNiArMzkxLDEyIEBAIGJvb2wgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OmlzVGhyb3R0bGVhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9pc1Ro
cm90dGxlYWJsZTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29u
dmVydEZldGNoVG9Eb3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBpZiAo
YXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xl
dG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkK
KyAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5jb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworfQorCiB2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2soU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAgICAgbV9j
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjpEaWRGYWlsSGVhcnRCZWF0Q2hlY2sgeyBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciB9LCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IGU3ZGY3
ZDk0MWFjZTkwNjQxNGVjZmZmNTBjNGJhNDc5ZDE0NjRkZDUuLjA1ODBkOTgzMjI4YTcyYmI4Yzk5
NDljYTJiMWI0YzcxMThmYWM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApA
QCAtMTA2LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5n
JiYgdXNlckFnZW50KTsKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRUaHJvdHRsZVN0
YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpOworICAgIHZvaWQgY29udmVydEZldGNoVG9Eb3dubG9h
ZChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNh
bmNlbEZldGNoRG93bmxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG1f
cmVnaXN0cmFibGVEb21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCmluZGV4IDUyOGJlY2E0ZWE0Y2I1NzU4NmM1Zjg2ODFmZGFhYWIyZTM3MTFk
MmMuLmQ1NDFiODAzMTkyYjhkNTRkMTgyMTdmYjExMjU2ZGYwMDY5NTMwMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00Myw2ICs0Myw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50
ZWQgewogICAgIFVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVy
ZW5jZXNTdG9yZSBzdG9yZSkKICAgICBDbG9zZSgpCiAgICAgU2V0VGhyb3R0bGVTdGF0ZShib29s
IGlzVGhyb3R0bGVhYmxlKQorCisgICAgQ29udmVydEZldGNoVG9Eb3dubG9hZChXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBmZWU4ZmVhN2JjYzhkNTljMDdl
M2M1YmE0ZDYwOTU1MmE0ZDYyOGJmLi5jN2RlNDE2NjkxNzNjNDU4N2UzOTFiMjI2NzVkYmNjYWJm
ZWFhMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgpAQCAtODQsNyArODUsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRp
Y19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7Cisg
ICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQo
KSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRp
Y19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1E
YXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwNyw3ICsxMTEsMTAg
QEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURh
dGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNh
c2Ugb2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJ
UEMuCiAgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAgaWYgKGJs
b2JVUkwuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7Cisg
ICAgICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRl
bnRpZmllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxNDIsMTAgQEAg
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5r
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHMKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxp
bnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9h
ZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxp
bnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJl
Y2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0s
IG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCkBAIC0xNTcsNyArMTY3LDEwIEBAIHZvaWQg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0s
IG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZEZh
aWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwg
eyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0x
NzQsNyArMTg3LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlk
RmluaXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRj
aElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmluaXNoIHsg
fSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2Zl
dGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xOTQsNiArMjEwLDEyIEBA
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkKICAgICBtX2Nv
bm5lY3Rpb24gPSBudWxscHRyOwogfQogCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKQoreworICAgIG1faXNEb3dubG9hZCA9IHRy
dWU7CisgICAgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7
CiAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRl
ckNsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UsIGhhcyBjb25uZWN0aW9uICVkLCBk
aWRGaW5pc2ggJWQsIHJlc3BvbnNlIHR5cGUgJWxkIiwgISFtX2Nvbm5lY3Rpb24sIG1fZGlkRmlu
aXNoLCBzdGF0aWNfY2FzdDxsb25nPihtX3Jlc3BvbnNlRGF0YS5pbmRleCgpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKaW5kZXggYjM0N2NhZDJhYjVmNTcxYjFhMGUyMDcy
MDgwNDM2N2Q3NzAxODYwMC4uMDFmNjEwYmQ0MzNhMmU5YWZjOWExZmRkNTRiMDg0MzBiOTgzN2Q3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtNTYsNiArNTYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAgdm9pZCBjYW5j
ZWwoKSBmaW5hbDsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgZmluYWw7
CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgZmluYWw7CiAKICAgICB2b2lkIGNs
ZWFudXAoKTsKICAgICAKQEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2Fp
dGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNlIH07CiAgICAg
c3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwg
UmVmPFdlYkNvcmU6OkZvcm1EYXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
PiBtX3Jlc3BvbnNlRGF0YTsKICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNEb3dubG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTQ4
YWYxOTg3YmZlNWE3YzJmNzQxYmJhNjBjMzllYTAyNWNkZTgxLi45MTQzN2EwZjVlODk3MTQyN2My
ZGNmNzZhMjY0N2U1NjNhMGM0ZGNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25s
b2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
MTQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBydW5uZXIgQVBJIHRvIGxv
ZyB0aGUgdG90YWwgZG93bmxvYWQgc2l6ZS4KKyAgICAgICAgVGhpcyBoZWxwcyBlbnN1cmluZyB0
aGF0IHNlcnZpY2Ugd29ya2VyIGxvYWRzIGFyZSBjb3JyZWN0bHkgZG93bmxvYWRlZCBhbmQgZG8g
bm90IHJlbHkgb24gbmV0d29ya2luZy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHA6CisKIDIwMjEtMTItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZv
ciBGaWx0ZXIgYW5kIEZpbHRlckVmZmVjdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXgg
N2NlYTA2NzZkMjdiNzI3MDE1MDI5NTlkMTdlMGNiNWM3Y2UwZWM2Yi4uNWY4NTI5OTIwNjM3MzFl
MGMyMTI4YjIwYmJlZjZmYjc3MGRlY2I5NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC0zOSw2ICszOSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBEb3dubG9hZHMu
CiAgICAgdW5kZWZpbmVkIHdhaXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKICAgICB1bmRlZmlu
ZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5k
ZWZpbmVkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuIHZhbHVlKTsKIAogICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9UUkVFX1NIT1dfQUxMX0xBWUVSUyAgICAgICAgICAg
ID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRU5ERVJfVFJFRV9TSE9XX0xBWUVSX05F
U1RJTkcgICAgICAgICA9IDI7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBlMWZjZTJjYTUxZjFiMDJkOWM0MzdiMDk5
ZWY3MTgzNjYxNTkwY2MyLi5hMzI4MGRmMTZjZDQ0ZjZkMDk4MDA4ZTYxOTJhNGMxMTMwNGFlMjJh
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKQEAgLTEwMDgsNiArMTAwOCwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNo
b3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpCiAgICAgcG9zdFBhZ2VNZXNzYWdl
KCJTZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyIsIHZhbHVlKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjpzZXRTaG91bGRMb2dEb3dubG9hZFNpemUoYm9vbCB2YWx1ZSkKK3sKKyAgICBwb3N0
UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSIsIHZhbHVlKTsKK30KKwogdm9p
ZCBUZXN0UnVubmVyOjpzZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKEpTU3RyaW5nUmVmIHVzZXJu
YW1lKQogewogICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIs
IHRvV0sodXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMzFmMTA2Zjk5M2I4YjY3NTdhOTY5MjJkNmIwY2Q0
YzRjNDQ2ODFhZC4uNWM2YTk2Y2FlMDFmNTkyNTU0NWI4ZjA2MGVhZmRmMmQ2YmUxYmYyNSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRG93bmxvYWRzCiAgICAgYm9v
bCBzaG91bGRGaW5pc2hBZnRlckRvd25sb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaW5p
c2hBZnRlckRvd25sb2FkOyB9CiAgICAgdm9pZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNr
cyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sKTsKIAogICAg
IGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0Vk
aXRpbmc7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCBlZDI4MDJmYjFlNzY2ZGM1ZGU2N2M0NGQxNTc2NjE2MzJjMzkzMWEzLi45OTYxYTYzYjlhZWU4
ZDBkZWIyNmZiYWUyOTcxNjcwNDYxY2ViNWE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
Om5hdmlnYXRpb25EaWRCZWNvbWVEb3dubG9hZFNoYXJlZChXS0Rvd25sb2FkUmVmIGRvd25sb2Fk
LCBjCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdFRvVVJMLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSwKLSAgICAgICAgbnVsbHB0ciwgLy8gZGlkV3Jp
dGVEYXRhCisgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YSwKICAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmluaXNoLAogICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsCiAgICAgfTsKQEAgLTExMDgsNiArMTEwOCw4IEBAIGJv
b2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAgICAgICAgIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0
d29ya1Byb2Nlc3MoKTsKICAgICB9CiAKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4g
PSAtMTsKKwogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7CiB9CiAKQEAgLTIyMzcsNiArMjIz
OSw4IEBAIFdLU3RyaW5nUmVmIFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhT
dWdnZXN0ZWRGaWxlbmFtZShXS0Rvd25sb2FkUmVmCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRv
d25sb2FkRGlkRmluaXNoKFdLRG93bmxvYWRSZWYpCiB7CisgICAgaWYgKG1fc2hvdWxkTG9nRG93
bmxvYWRTaXplKQorICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VT
dHJpbmcoIkRvd25sb2FkIHNpemU6ICIsIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiwgIi5c
biIpKTsKICAgICBpZiAobV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcykKICAgICAgICAgbV9j
dXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgiRG93bmxvYWQgY29tcGxldGVkLlxuIik7CiAg
ICAgbV9jdXJyZW50SW52b2NhdGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7CkBAIC0yMjY5LDYg
KzIyNzMsMTggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV0tEb3dubG9hZFJlZiwgV0sKICAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG51bGxwdHIsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsK
IH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEobG9uZyBsb25n
IHRvdGFsQnl0ZXNXcml0dGVuKQoreworICAgIGlmICghbV9zaG91bGRMb2dEb3dubG9hZENhbGxi
YWNrcykKKyAgICAgICAgcmV0dXJuOworICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9
IHRvdGFsQnl0ZXNXcml0dGVuOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERp
ZFdyaXRlRGF0YShXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBsb25nIGxvbmcgYnl0ZXNXcml0dGVu
LCBsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhwZWN0
ZWRUb1dyaXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kb3dubG9hZERp
ZFdyaXRlRGF0YSh0b3RhbEJ5dGVzV3JpdHRlbik7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6
OndlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29u
KQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3
aGVuIGNyYXNoIGxvZ3MgYXJlIGJlaW5nIHNhdmVkIG9uIFdpbmRvd3MsIHNvCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNWNkNDlmYWYzMGRlNzhjY2VhY2Q1YWQw
M2M4NDg2ZGM1ZmM5MWMxMC4uMzAyYzVkNmU1ZGFlZjQ1ZmIyMWY5ZmZlOTEyNDI0NWU1N2VjZmY0
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTkwLDYgKzE5
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFj
a3MoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzID0g
c2hvdWxkTG9nOyB9CiAgICAgdm9pZCBzZXRTaG91bGRMb2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nQ2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSA9IHNob3VsZExvZzsgfQogICAgIHZvaWQgc2V0U2hv
dWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3du
bG9hZENhbGxiYWNrcyA9IHNob3VsZExvZzsgfQorICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxv
YWRTaXplKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRTaXplID0gc2hvdWxk
TG9nOyB9CiAKICAgICBib29sIGlzQ3VycmVudEludm9jYXRpb24oVGVzdEludm9jYXRpb24qIGlu
dm9jYXRpb24pIGNvbnN0IHsgcmV0dXJuIGludm9jYXRpb24gPT0gbV9jdXJyZW50SW52b2NhdGlv
bi5nZXQoKTsgfQogCkBAIC00NzMsNyArNDc0LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJv
b2wgZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBX
S1VSTFJlc3BvbnNlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBib29s
IGRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tV
UkxSZXF1ZXN0UmVmKTsKICAgICBzdGF0aWMgdm9pZCBkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLSAgICAKKworICAgIHZvaWQgZG93bmxvYWRE
aWRXcml0ZURhdGEobG9uZyBsb25nIHRvdGFsQnl0ZXNXcml0dGVuKTsKKyAgICBzdGF0aWMgdm9p
ZCBkb3dubG9hZERpZFdyaXRlRGF0YShXS0Rvd25sb2FkUmVmLCBsb25nIGxvbmcgYnl0ZXNXcml0
dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhw
ZWN0ZWRUb1dyaXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwogICAgIHN0YXRpYyB2b2lk
IHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQYWdlUmVmLCAgV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHZvaWQgd2ViUHJvY2Vzc0RpZFRl
cm1pbmF0ZShXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKQEAgLTY2Myw2ICs2NjcsOSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50
ZWQgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3Jh
bnRlZCB7IHRydWUgfTsKKworICAgIGxvbmcgbG9uZyBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0
ZW4geyAtMSB9OworICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgeyBmYWxzZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IDNkZmFjNWZjMDA5ZTQ5NjU0NDRlNmI0MDkxZGJlZWIyZTIyMWQyYmIu
LjcyZmE4MmJiYzAxMDI5NmYwNGQxMzBlYzliYzZhNDM1N2NiZDBlOTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC01MzcsNiArNTM3LDExIEBAIHZvaWQg
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZExvZ0Rvd25s
b2FkU2l6ZSIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91
bGRMb2dEb3dubG9hZFNpemUoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiKSkgewogICAgICAgICBXS1N0cmlu
Z1JlZiB1c2VybmFtZSA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUodG9XVEZTdHJp
bmcodXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NTllZGM4NmNiNjgyMTg5ZTkyMzEyMzBkMDQ2MzkxMmE4
NWI0ZmI1Li40NDRjNWVkZTc1N2VlNTRmNjg3Yjg2MTkzMjgwYjY1MWEzMGYyYzY2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjEtMTItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMu
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0u
aHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVj
dC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhy
b3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5OgorCiAy
MDIxLTEyLTA0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAg
IENTUyBhbmltYXRpb24gc29ydGluZyBtYXkgY3Jhc2ggZHVlIHRvIEFuaW1hdGlvbkxpc3QgY29w
eSB1cG9uIENTUyBBbmltYXRpb24gcmVtb3ZhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2Fk
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKaW5kZXggZDVjNjYzMGJiNTEx
ZjVmN2FiMjhlZGQyMWI0MGFhOGZjMzM0NmVmNy4uNjAwMjkyMzlkMzdlMGMyZWZlYTIxYzI1NWRl
ZjJmYWZmN2JmYjgzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCkBAIC0xLDMgKzEsMjEgQEAKIHNlbGYuYWRkRXZl
bnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51
cmwuaW5jbHVkZXMoImRvd25sb2FkLWJvZHkiKSkgeworICAgICAgICBjb25zdCByZXNwb25zZSA9
IG5ldyBSZXNwb25zZSgiYSBkb3dubG9hZCBib2R5IiwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQt
VHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdp
dGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5yZXF1
ZXN0LnVybC5pbmNsdWRlcygiZG93bmxvYWQtc3RyZWFtIikpIHsKKyAgICAgICAgY29uc3Qgc3Ry
ZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHN0YXJ0OiAoY29udHJvbGxl
cikgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIo
KTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoImEg
Zmlyc3QgY2h1bmssICIpKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29u
dHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCJ0aGVuIGEgc2Vjb25kIGNodW5rIikpOyB9
LCAxMDApOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBjb250cm9sbGVyLmNs
b3NlKCk7IH0sIDIwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjb25z
dCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0sIHsiaGVhZGVycyIgOiBbWyJDb250ZW50
LVR5cGUiLCAiYXBwbGljYXRpb24vYmluYXJ5Il1dfSk7CisgICAgICAgIGV2ZW50LnJlc3BvbmRX
aXRoKHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBldmVudC5yZXNwb25k
V2l0aChmZXRjaChldmVudC5yZXF1ZXN0LnVybCkpOwogfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1i
b2R5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYyZWJjMmI4NmU2NmJiMzljOWJjMDlkM2RhOTNmNDAzMjQzMWJjZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmls
ZW5hbWUgImRvd25sb2FkLWJvZHkiCitEb3dubG9hZCBzaXplOiAxNS4KK0Rvd25sb2FkIGNvbXBs
ZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZDJkNDgwYTkxZGFhYzFjNmQ0ZDBlZWM4OWVjYzI4N2Y0
YmE5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNl
dFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3Vs
ZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZp
bmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlN
RVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGF3YWl0
IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3Jr
ZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7CisgICAgd2luZG93LmxvY2F0
aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2FkLWJvZHkiOworfQorZG9U
ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0
cmVhbS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA5YTE5ZWJlMzdhMzE0YjNmNTg2MjQ4YTc2NjdmYTUwYzBmMzlmZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSAiZG93bmxvYWQtc3RyZWFtIgorRG93bmxvYWQgc2l6ZTogMzQuCitEb3dubG9h
ZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxv
YWQtc3RyZWFtLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU3NzNmZTQ2OTY0MDY0MzMwM2JlMDNm
YTc0MGRjOGMxY2JhODA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
dGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1
bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5k
aXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkK
K3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZyYW1lKCJyZXNvdXJjZXMvc2VydmljZS13b3JrZXIt
ZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzLyIpOworICAg
IHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9kb3dubG9hZC1z
dHJlYW0iOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCBkMDhlZjg0NmQzMmY2ZWM5MWQ5NDI3M2M5YzI0ZTBmMGYyY2E2MjAyLi45ZTMzM2Q1
NjkxZTk5YmJlNWRlMzMyYjVjYWZiMWU0ZmRlY2EzNzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NSBAQAogRG93bmxvYWQgc3RhcnRlZC4KIERvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAiZG93bmxvYWQtYmluYXJ5LnB5IgorRG93bmxvYWQgc2l6ZTogOS4KIERvd25sb2Fk
IGNvbXBsZXRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBz
Lmh0bWwKaW5kZXggOGM5YWRhM2ZjODEyYzM2MDk3YjNkMDM5NDE2NDA5MzVjYjIyZTc0Ni4uNGE1
YWE4N2I0ZWMwZDNkNzNjOTcxNjFlMDYyZmM3ZGM2OGExN2IyNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCkBAIC03LDYgKzcsNyBAQAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNl
dFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3du
bG9hZEZpbmlzaGVkKCk7CiAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlh
YmxlTUlNRVR5cGVzKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhy
b3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9h
ZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFiMmU1MGQ5MTljCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJM
IHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNj
cmlwdC5weSIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAg
dGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25s
b2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsK
K3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2Fk
PXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2YXIgZnJh
bWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0aW9uIHdh
aXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmlnZ2VyQWN0
aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0ZSIpOwor
fQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7
IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIGlmICgh
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2Vy
LXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAgICBhY3Rp
dmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIucG9z
dE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisKKyAg
ICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAiJnZhbHVl
PXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQgaWZyYW1l
LCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5kIHdpbGwg
YmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxvYWQgc2lu
Y2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8vIERvd25s
b2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBwcm9t
aXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30KK2Rv
VGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVjZjZlMGQzNmZhMWIxYjJl
NTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBV
Ukwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
c2NyaXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9h
ZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmZkZmVjNDJiYzMyMTIwNzAzMmM5MWY4NDQ4N2Iy
MDRiZTUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVy
LnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3Bs
YXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQg
PSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJnRva2Vu
PSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5l
bCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICByZXR1cm4gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25tZXNzYWdlID0g
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFjdGl2YXRpbmci
KQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKwor
ZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVz
c2FnZSgiYWN0aXZhdGUiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZVNlcGFyYXRl
U2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVu
KCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBsZXQgcmVnaXN0cmF0aW9uID0g
YXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6
IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7
CisgICAgfQorCisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Cisg
ICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hh
bm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGlsQWN0aXZhdGluZygpOworCisgICAg
ZmV0Y2godXJsICsgIiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisK
KyAgICAvLyBMb2FkIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28gcHJlbG9hZCB3
aWxsIHN0YXJ0IGFuZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUgZG93bmxvYWRlZCwgdGhyb3VnaCB0
aGUgc2VydmljZSB3b3JrZXIuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBv
ZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisK
KyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdv
cmtlci5qcwppbmRleCBkMDRhNDlhNzhjZDg5MjlhNGZkMGRiNGFiMGNlYjgwMWEwMTk1MGU4Li42
ODUwZTAxZGE5ZjFiNjZmY2NkZjNhOGYxNzg5NjExNzQzYjgxYmJkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzCkBAIC0yMyw1ICsyMyw3IEBA
IG9uYWN0aXZhdGUgPSAoZXZlbnQpID0+IHsKIH0KIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdm
ZXRjaCcsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygi
bm8tZmV0Y2gtZXZlbnQtaGFuZGxpbmciKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGV2ZW50LnJl
c3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKaW5k
ZXggMjA2NzgzNmY1NDE3MDNkZTg0ZjA4YjhlYjNlNmNjOGMzMzgxMzlmZS4uOWE5YWZjZGI0NjUz
ZmY2N2U1ZDNkYzY1NWJmOGI5OTRlZWM3NzkwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXNjcmlwdC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CkBAIC0zMSw1
ICszMSwxMCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgaWYgbm90IHZhbHVl
OgogICAgICAgICB2YWx1ZSA9IGIibm90aGluZyIKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChi
IkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKworICAgIGlmIGIiZG93bmxvYWQiIGluIHJl
cXVlc3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIs
IGIiYXBwbGljYXRpb24vYmluYXJ5IikKKyAgICAgICAgcmV0dXJuIHZhbHVlLmRlY29kZSgpCisK
ICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIikK
ICAgICByZXR1cm4gIjxodG1sPjxib2R5PjxzY3JpcHQ+d2luZG93LnZhbHVlID0gJyVzJzs8L3Nj
cmlwdD48L2JvZHk+PC9odG1sPiIgJSB2YWx1ZS5kZWNvZGUoKQo=
</data>
<flag name="commit-queue"
          id="471350"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446032</attachid>
            <date>2021-12-06 05:31:20 -0800</date>
            <delta_ts>2021-12-06 05:37:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211206143116.patch</filename>
            <type>text/plain</type>
            <size>94219</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uMTMwNDRiYzFiNDFmNzlkYzYzMTBkODU2OTk4MWI0
MjUxYzBhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFVzZSBlbmQgYml0
cyBpbiB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MTc5NDc1ZjdkZmQwOGYxNDhkMDI1
ODdlNDBjZmQ1OWIwMWFhOGRhLi4wMjJhMWEzYjE5OTUxMGRiMjdhMjc3ZWYxOWU3OGZjYTUzNWQz
NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9h
ZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBk
b3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1
c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3
b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBh
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9h
ZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4K
KyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQg
c2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAg
ICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFs
bG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlz
c3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMg
bm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRz
IGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAg
IEluY3JlYXNlIHVuaWZpZWQgYnVpbGQgZmlsZXMgdG8gMTEyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBTY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENW
UGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0
aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpkaWRSZWNlaXZlVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRoU3RyZWFtQnVm
ZmVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0
V2l0aFN0cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
Ojpkb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3du
bG9hZFByb3h5KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRl
ciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IGViMjY2YjZjMDdl
NjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUyMzBmOWJkYjk5YTVlODM4N2RmZDk2
MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OCw2ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0
Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAK
aW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0MDI2NWNjMjZkYi4uZGI2YzkzYjhi
ZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBAIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKKwordm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkICVsbHUiLCBmZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRvIGNsaWVudCA9IG1fb25nb2luZ0Zl
dGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW2NsaWVudCA9IFJlZiB7
ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVudC0+Y29udmVydEZldGNoVG9Eb3du
bG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworfQorCiB2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAgIGF1dG8gY2xpZW50ID0gbV9vbmdv
aW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAw
YTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1ZjRhLi4wMWIzYWQwNDkxNWQ0YmUy
N2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
LCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcm
JiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbmNlbEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250
aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVGZXRjaChT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCBiMWRiYmI1NTQ5ZjdhMDUxYmNjYjBkYmUyZjIzOTlhYWJmMWFiOTIxLi4y
NTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwKICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNWJhNjRiNDRiZTFlNTc3NTA4OGZjNmU5MDU1
OTljN2NkNTc4M2NkMy4uNDA0YTcyMmM3NjkwMDAwYTBmMDNiOWE4MDBkZmM1YjdhMWUzMGJkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
ODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDg2ZWZkNmJjOGQ5ZDE5MzcwZWY5ZGY4NWNiNWI5ZGEy
YzM3ZmE5NS4uYjU3Zjk3MDFhNGU5OTU2M2M4ZDNhMGI5ODk1ZTI0MGZlYjA4NzdjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zOTYs
NiArMzk2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA2ODRmYWNkNWQ3NmZjMjRhMjdiMDdhZjQ3MGNjM2Y5YTNjZDFjMDYwLi5iM2I3
MTk3N2I0YTBhZTQxYTJiNmMwZDc1ZDM3MzdmMDkzOWE3MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJTmV0
d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBc
CiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIFwKKwlOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAJTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gXAogCU5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFkNzNlNjc0MTcwLi44YzU1YTFjMjYx
MjlmODZjZjY1NGEwYzVjNTI0MmFjNTI5NTg5NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlBpbmdMb2FkLmgiCiAjaW5jbHVkZSAi
UHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMjY0LDYg
KzI2NSwxMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICAgICAgbV9zd0NvbnRl
eHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGlmIChtX3N3Q29udGV4dENvbm5lY3Rpb24p
CisgICAgICAgICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVEb3dubG9hZFRh
c2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkKQEAgLTY5NSwxMiArNzAy
LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKHN0ZDo6b3B0aW8KIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICAvLyBJbiBjYXNlIGEgcmVzcG9uc2UgaXMgc2VydmVkIGZy
b20gc2VydmljZSB3b3JrZXIsIHdlIGRvIG5vdCBoYXZlIHlldCB0aGUgYWJpbGl0eSB0byBjb252
ZXJ0IHRoZSBsb2FkLgotICAgIGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIgfHwgcmVz
cG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2Vy
KSB7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93
bmxvYWQobV9zZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlcXVlc3QsIGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgTmV0d29ya1Jlc291
cmNlTG9hZGVyKiBsb2FkZXIgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuZ2V0KCptYWluUmVz
b3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgaWYgKCFsb2FkZXIpIHsKICAgICAgICAgLy8gSWYg
d2UncmUgdHJ5aW5nIHRvIGRvd25sb2FkIGEgYmxvYiBoZXJlIGxvYWRlciBjYW4gYmUgbnVsbC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggYmFj
MDIyYWI0NTQzMGY2NTFiMTg5YWMwMTIwN2EwNjA2MDhjMTY3MS4uNmRmMTQxMDczNmFiYTJmMmQ5
YTE5NjE1NmMwYjFiYWZhOGU3MDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDEzIEBAIE5ldHdvcmtMb2FkOjpOZXR3b3Jr
TG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBCbG9iUmVnaXN0cnlJbXBsKiBibG9iUmVn
aXN0CiAgICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKG5ldHdvcmtTZXNz
aW9uLCAqdGhpcywgbV9wYXJhbWV0ZXJzKTsKIH0KIAorTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2Fk
KE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lv
biwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4oTmV0d29ya0RhdGFUYXNr
Q2xpZW50Jik+JiBjcmVhdGVUYXNrKQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9u
ZXR3b3JrUHJvY2VzcyhuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpKQorICAgICwgbV90
YXNrKGNyZWF0ZVRhc2soKnRoaXMpKQoreworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydCgp
CiB7CiAgICAgaWYgKCFtX3Rhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmgKaW5kZXggYzM3NzNjOTg3ODU1M2NlNTM0ZDA1NGFiZmZkZGViYjI5ZWUwODRkMi4u
YjkyZjljNjFlMTM1OTBjNDFjYmMxZDhiMzgyOGQzYWNjYjc1MWIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBO
ZXR3b3JrTG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBOZXR3b3JrTG9hZChOZXR3b3Jr
TG9hZENsaWVudCYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqLCBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMmJiwgTmV0d29ya1Nlc3Npb24mKTsKKyAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYsIE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRh
VGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+Jik7CiAgICAgfk5ldHdvcmtMb2FkKCk7CiAK
ICAgICB2b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTUwY2Y0YWJiZTU2NGU0Y2EzZmI3
MjZjYWE5ZDU2OWM1NGIwOWQ3Mi4uYjg3YWQ0ZDNjMWNhMDMxMGRiMjNhNzkyMDg5ZTVkMTg3YWM4
Zjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDg0LDYgKzQ4NCwxMSBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25z
dCBSZXNvdQogewogICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29udmVydFRvRG93bmxvYWQ6IChk
b3dubG9hZElEPSUiIFBSSXU2NCAiLCBoYXNOZXR3b3JrTG9hZD0lZCwgaGFzUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlcj0lZCkiLCBkb3dubG9hZElELnRvVUludDY0KCksICEhbV9uZXR3b3JrTG9h
ZCwgISFtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorICAgIGlmIChtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2sgJiYgbV9zZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLT5jb252ZXJ0VG9Eb3dubG9hZChtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9j
ZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKSkK
KyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhl
IHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xv
YWQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFu
YWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklEKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIG1f
cGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjdkZWFkZDg5MzY1
NTZiY2Q5Nzg3MTdkYzJkNzMzMjlmMzdkN2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2suY3BwCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKKworI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG93bmxvYWRJ
RCBkb3dubG9hZElEKQorICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlLCBmYWxzZSwgZmFsc2UpCisg
ICAgLCBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQor
ICAgICwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikK
KyAgICAsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpCisgICAgLCBtX2ZldGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpCisgICAgLCBt
X2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3Moc2VydmljZVdv
cmtlckNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSkKK3sKKyAgICBzZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2VydmljZVdvcmtlckRvd25s
b2FkVGFzazo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQoreworICAgIGlmIChtX3NlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT51
bnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdl
PiBib29sIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnNlbmRUb1NlcnZpY2VXb3JrZXIoTWVz
c2FnZSYmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24g
PyBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5pcGNDb25uZWN0aW9uKCkuc2VuZChzdGQ6OmZv
cndhcmQ8TWVzc2FnZT4obWVzc2FnZSksIDApIDogZmFsc2U7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUgIT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBGaWxlU3lz
dGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAgICBtX2Rvd25sb2FkRmlsZSA9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgfQorICAgIEZpbGVT
eXN0ZW06OmRlbGV0ZUZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7CisKKyAgICBpZiAo
bV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tl
KCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAg
c2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CisKKyAgICBtX3N0YXRlID0g
U3RhdGU6OkNvbXBsZXRlZDsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpy
ZXN1bWUoKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKK30KKwordm9pZCBTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKK3sKKyAgICBjYW5j
ZWwoKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZXRQZW5kaW5nRG93
bmxvYWRMb2NhdGlvbihjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUp
Cit7CisgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbigpKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9h
ZChjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgTmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihmaWxl
bmFtZSwgeyB9LCBhbGxvd092ZXJ3cml0ZSk7CisKKyAgICBBU1NFUlQoIW1fc2FuZGJveEV4dGVu
c2lvbik7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
KFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpOworICAgIGlmIChtX3NhbmRib3hFeHRl
bnNpb24pCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+Y29uc3VtZSgpOworCisgICAgaWYg
KGFsbG93T3ZlcndyaXRlICYmIEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZmlsZW5hbWUpKQorICAg
ICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGVuYW1lKTsKKworICAgIGlmICghc2VuZFRv
U2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNv
bnZlcnRGZXRjaFRvRG93bmxvYWQgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KSkgeworICAgICAgICBk
aWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZp
bGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpX
cml0ZSk7CisgICAgaWYgKG1fZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9y
KGZpcnN0UmVxdWVzdCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBhdXRvJiBtYW5hZ2VyID0gbV9uZXR3b3JrUHJvY2Vz
cy0+ZG93bmxvYWRNYW5hZ2VyKCk7CisgICAgYXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8RG93
bmxvYWQ+KG1hbmFnZXIsIG1fZG93bmxvYWRJRCwgKnRoaXMsICpuZXR3b3JrU2Vzc2lvbigpKTsK
KyAgICBhdXRvKiBkb3dubG9hZFB0ciA9IGRvd25sb2FkLmdldCgpOworICAgIG1hbmFnZXIuZGF0
YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sobV9kb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7
CisgICAgZG93bmxvYWRQdHItPmRpZENyZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25sb2Fk
TG9jYXRpb24pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCkKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IGJ5dGVz
V3JpdHRlbiA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZG93bmxvYWRGaWxlLCBkYXRhLmRh
dGEoKSwgZGF0YS5zaXplKCkpOworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gZGF0YS5zaXplKCkp
IHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgp
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Rvd25sb2FkQnl0ZXNXcml0dGVu
ICs9IGJ5dGVzV3JpdHRlbjsKKyAgICBpZiAoYXV0byogZG93bmxvYWQgPSBtX25ldHdvcmtQcm9j
ZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkKKyAg
ICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKGJ5dGVzV3JpdHRlbiwgbV9kb3dubG9hZEJ5
dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlk
UmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQor
eworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHdyaXRpbmcgZm9ybURhdGEgaW4gZG93bmxvYWRzLgor
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEgbm90IGltcGxlbWVudGVkIik7CisgICAgZGlkRmFp
bERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgpKSk7Cit9CisKK3ZvaWQgU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OkNvbXBsZXRlZDsKKworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmls
ZSk7CisgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlOworCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICBtX3NhbmRi
b3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBudWxs
cHRyOworICAgIH0KKworICAgIGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+
ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAg
IGRvd25sb2FkLT5kaWRGaW5pc2goKTsKKworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHsgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzazo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICBkaWRGYWlsRG93bmxvYWQoZXJyb3Ip
OworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZhaWxEb3dubG9hZChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9kb3dubG9hZEZpbGUgIT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBGaWxlU3lz
dGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAgICBtX2Rvd25sb2FkRmlsZSA9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgfQorICAgIEZpbGVT
eXN0ZW06OmRlbGV0ZUZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7CisKKyAgICBpZiAo
bV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tl
KCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAg
aWYgKGF1dG8gZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5k
b3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgZG93bmxvYWQtPmRpZEZhaWwo
ZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSgpKTsKKworICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKGVycm9yKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWQwOGU0MmIw
ZjllY2U2Yjk1NTAyYzcwMDdlMGUwM2NmY2U4YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisj
aW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xhc3MgTmV0d29ya1Byb2Nlc3M7CitjbGFzcyBT
YW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb247CisK
K2NsYXNzIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNr
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
RG93bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJlZigqIG5ldyBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVjdGlvbiwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIs
IHJlcXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
KCk7CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIERvd25sb2FkSUQpOworCisgICAgLy8gSVBDIE1lc3NhZ2UKKyAgICB2b2lkIGRpZFJlY2Vp
dmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5n
dGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaCgpOworICAgIHZvaWQgZGlkRmFpbChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2sKKyAgICB2
b2lkIGNhbmNlbCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBp
bnZhbGlkYXRlQW5kQ2FuY2VsKCkgZmluYWw7CisgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlv
bihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgYm9v
bCAvKmFsbG93T3ZlcndyaXRlKi8pIGZpbmFsOworCisgICAgdm9pZCBkaWRGYWlsRG93bmxvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
c3NhZ2U+IGJvb2wgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYpOworCisgICAgV2Vha1B0
cjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IG1fc2VydmljZVdvcmtlckNvbm5lY3Rp
b247CisgICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IG1fZmV0Y2hJZGVudGlmaWVyOworICAgIERvd25sb2FkSUQgbV9kb3dubG9hZElEOworICAgIFJl
ZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKKyAgICBSZWZQdHI8U2FuZGJveEV4
dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uOworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmls
ZUhhbmRsZSBtX2Rvd25sb2FkRmlsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUgfTsKKyAgICBpbnQ2NF90IG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4geyAwIH07CisgICAg
U3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpTdXNwZW5kZWQgfTsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzYmZiN2NjMzEwOTc5
OWNjODAwMWJiYTcxZDg5YzBmNmYyZDkyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4g
U2VydmljZVdvcmtlckRvd25sb2FkVGFzayBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRGYWlsKFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisg
ICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBE
aWRGaW5pc2goKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IGQ3ODdiNTEwYWQ3ODAxYjg3
NmZkYWYxOGJjZWE2MGEwNjc3NDdkN2EuLjY4NzY1NmU1NzAwMmRhYWMxYzZhN2FmZmU3YTUwYzll
N2EzYjhmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRm9ybURh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0xv
YWQuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCkBAIC0zMDIsNyArMzAz
LDEwIEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y2Fubm90SGFuZGxlKCkKIAogdm9p
ZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjYW5jZWxGcm9tQ2xpZW50KCkKIHsKLSAgICBTV0ZF
VENIX1JFTEVBU0VfTE9HKCJjYW5jZWxGcm9tQ2xpZW50OiIpOworICAgIFNXRkVUQ0hfUkVMRUFT
RV9MT0coImNhbmNlbEZyb21DbGllbnQ6JWQiLCBtX2lzRG9uZSk7CisgICAgaWYgKG1faXNEb25l
KQorICAgICAgICByZXR1cm47CisKICAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRp
ZmllciB9KTsKIH0KIApAQCAtNDE2LDYgKzQyMCwyNiBAQCBOZXR3b3JrU2Vzc2lvbiogU2Vydmlj
ZVdvcmtlckZldGNoVGFzazo6c2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc3dTZXJ2ZXJDb25uZWN0
aW9uID8gbV9zd1NlcnZlckNvbm5lY3Rpb24tPnNlc3Npb24oKSA6IG51bGxwdHI7CiB9CiAKK2Jv
b2wgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYg
KG1fcHJlbG9hZGVyICAmJiAhbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbV9wcmVsb2FkZXItPmNvbnZlcnRUb0Rv
d25sb2FkKG1hbmFnZXIsIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKKworICAgIGF1
dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCk7CisgICAgaWYgKCFzZXNzaW9uIHx8ICFtX3Nl
cnZpY2VXb3JrZXJDb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lz
RG9uZSA9IHRydWU7CisKKyAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byBrZWVwIHRoZSBz
ZXJ2aWNlIHdvcmtlciBhbGl2ZSB1bnRpbCB0aGUgZG93bmxvYWQgZW5kcy4KKyAgICBhdXRvIHNl
cnZpY2VXb3JrZXJEb3dubG9hZExvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkPihtX2xvYWRl
ciwgKnNlc3Npb24sIFsmXShhdXRvJiBjbGllbnQpIHsKKyAgICAgICAgcmV0dXJuIFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2s6OmNyZWF0ZSgqc2Vzc2lvbiwgY2xpZW50LCAqbV9zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbiwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQpOwor
ICAgIH0pOworCisgICAgbWFuYWdlci5jb252ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2FkKGRvd25s
b2FkSUQsIFdURk1vdmUoc2VydmljZVdvcmtlckRvd25sb2FkTG9hZCksIFtdKGF1dG8pIHsgfSwg
eyB9LCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgU1dGRVRDSF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXggYWJhOTA1NzJmMDUxZWVkOTBmMmY3YTlkNTM1
MDVlMWE0ZjRlOThjMi4uYzM0NTgwMjY3ZmIzMjY5ZTZkY2JkY2VmYzM0ZDA2ODJjNmEwODg2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgorI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgpAQCAtNTQsNiArNTUs
NyBAQCBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewor
Y2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xh
c3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
cjsKQEAgLTg1LDYgKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90SGFuZGxlKCk7CiAg
ICAgdm9pZCBjb250ZXh0Q2xvc2VkKCk7CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERv
d25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICBl
bnVtIGNsYXNzIFNob3VsZFNldFNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCBk
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5j
cHAKaW5kZXggNzFlMGNmNmM2ZGM3YmVhNTIyYzkwNjAwNTU1ZjU3MjE2MWMzYzJmNC4uMDFjMWUy
NTY0YTg2MTIyZWI2NzFlMGY2YTg2OWZhOTg3YmUyNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9u
UHJlbG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEb3dubG9hZE1h
bmFnZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKQEAgLTI0Miw2ICsyNDMsMTUgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvckJvZHkoQm9keUNhbGxiYWNrJiYg
Y2FsbGJhY2spCiAgICAgbV9ib2R5Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAor
Ym9vbCBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQo
RG93bmxvYWRNYW5hZ2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQo
ZG93bmxvYWRJRCwgc3RkOjpleGNoYW5nZShtX25ldHdvcmtMb2FkLCBudWxscHRyKSwgV1RGTW92
ZShtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlci5oCmluZGV4IDFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5
ZGM1MGU2Y2I4ZjFlYjQuLjhhNGYzY2RjNGE0MTYwZTlhYjc1Yjc2NTYxZjQyMWVkM2M3ZTVmNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNp
bmNsdWRlICAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAj
aW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaCIKQEAgLTM5LDYgKzQwLDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29y
a0xvYWQ7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIApAQCAtNjAsNiArNjIsOCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJp
Y3MoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogICAgIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0ZS5lbmFibGVkOyB9CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFu
YWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3Jr
TG9hZENsaWVudC4KICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRl
c1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApp
bmRleCA4YjIxMzg1MmQwZjExN2RlZjgxOWQ0NTJkYjdiOGZjZjQ5ZTM3NTZiLi42ODZlZmU5Y2Zl
NjZjNDgwZTcxMDMxYjNhMGRkYzA1MzY0ODVkMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTk3LDYgKzE5NywyNyBAQCB2
b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2smIHRhcwogICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2su
ZmV0Y2hJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZURvd25sb2FkVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b25nb2luZ0Rvd25sb2Fkcy5maW5kKG1ha2VPYmplY3RJZGVudGlmaWVyPEZldGNoSWRlbnRpZmll
clR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
b25nb2luZ0Rvd25sb2Fkcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaXRlcmF0b3It
PnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKK30KKwordm9p
ZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRG93bmxvYWQoU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzayYgdGFzaykKK3sKKyAgICBBU1NFUlQoIW1fb25nb2luZ0Rvd25s
b2Fkcy5jb250YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7CisgICAgbV9vbmdvaW5nRG93
bmxvYWRzLmFkZCh0YXNrLmZldGNoSWRlbnRpZmllcigpLCB0YXNrKTsKK30KKwordm9pZCBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVucmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAgIEFTU0VSVChtX29uZ29pbmdEb3dubG9hZHMu
Y29udGFpbnModGFzay5mZXRjaElkZW50aWZpZXIoKSkpOworICAgIG1fb25nb2luZ0Rvd25sb2Fk
cy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZpZXIoKSk7Cit9CisKIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6d2ViUHJvY2Vzc0lkZW50
aWZpZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50
aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaAppbmRleCA0YTBiMTUzNzFmZjk2NzE1OWRmZTY2MTI1OGU0NTU3NmU3NTIxMTBkLi5lODA4
YmNhMDI1NzIxMzY1YmYzNDc3OGZiNTlkNDA5ZWI0YTk3NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaD4KQEAgLTY4
LDE0ICs2OSwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxGZXRjaChXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNo
VGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlRG93bmxvYWRUYXNrTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKIAogICAgIHZvaWQgc2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0bGVhYmxlKTsK
ICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJs
ZTsgfQogCiAgICAgdm9pZCByZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJik7CisgICAg
dm9pZCByZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsKKyAgICB2
b2lkIHVucmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CiAKICAg
ICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0
OworICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdl
U2VuZGVyCkBAIC0xMDMsNiArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFdlYWtQdHI8V2ViQ29yZTo6U1dTZXJ2
ZXI+IG1fc2VydmVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFr
UHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdGZXRjaGVzOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2s+PiBtX29uZ29pbmdEb3dubG9hZHM7CiAgICAgYm9vbCBtX2lzVGhyb3R0bGVhYmxlIHsg
dHJ1ZSB9OwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJRDsKICAg
ICBzaXplX3QgbV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcAppbmRleCAwYTVhMTc0N2ZmMTEwNjIwODBjNDkwNjExYWRjZjYzOTVlZWY5
OGVkLi5iYmIzZWMyNTI4NzYwZjNlNTg4NTEzMzViNWVjMzcwMmQyYmJmZGNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVE
YXRhVHlwZS5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1Njb3BlLmg+CisjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2Rl
cnMuaD4KICNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERlY29kZXIuaD4KICNp
bmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9CYXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS11bmlmaWVkLXNvdXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
dW5pZmllZC1zb3VyY2VzLnNoCmluZGV4IGI2ZDQwYWQ5ZTk1NDdiZDQwZGU4NWM5Yzg1YTM1YzFl
MjVjZGYxOTEuLjRmMWFjODNjYjNhMjI2ZWNjZDA3ODM5ODM3OTIzY2JjNDRiYWI5MjMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaApA
QCAtMTQsNyArMTQsNyBAQCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhlbgog
ICAgIGZpCiBmaQogCi1VbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExMQorVW5pZmllZFNvdXJj
ZUNwcEZpbGVDb3VudD0xMTIKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBbICQj
IC1lcSAwIF07IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDA5MzBjZjkxN2JhNzkwZTU3NWQ4NGI5NjllYWMwNTgxZjUyZjUxNmUuLjhhNDc0OWNkNDRi
ZGQ0OWU4YzZlOTI2NDBhYTQ3Y2MxNzE3YmU3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgZGVmIGdlbmVyYXRlX21lc3Nh
Z2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYg
KGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygp
KVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJ
KVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURf
V0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBk
ZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSk7XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICBlbGlmIGFz
eW5jX21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVT
U0FHRV9BVFRSSUJVVEUpIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfQVNZTkNfRElT
UEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUpOgogICAgICAgICByZWNlaXZlX3ZhcmlhbnQgPSByZWNl
aXZlci5uYW1lIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FUVFJJ
QlVURSkgZWxzZSAnJwpAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2Vf
aGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKGNv
bm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRs
ZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnfVxuJykKIAogICAgIGlmIG5vdCByZWNlaXZlci5oYXNfYXR0cmlidXRlKFNUUkVB
TV9BVFRSSUJVVEUpIGFuZCAoc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRl
KFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKSk6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
Q1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNTY0OTZkZGJhNWVhNDQyNGQ0
MmUxZmNmNWMyNTYzMzhlZDI4NGUyZi4uMzg0MWZhZjMxNzU2MWNjMmNiM2E0Mjg1YWYzNjUzZmY0
YzIyN2M1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogICAgIGlm
IChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlcjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRl
eCBjYWI1NTlmNmU1N2M4NTdiOTM0Mzc1ZWFiZTU5YTdiYjQ5YWVhYjQ0Li5hYWM2YmIzNWM4ZTE4
Yjk3NmJhMTY4ODUxYWY0ZmY1MjM5Y2E1OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdl
TWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFRlc3RXaXRoSWZNZXNz
YWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygp
KQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0
byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJV
bmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5j
cHAKaW5kZXggYTliMDc4OWM1OWFhOWE0ZTViYmIyMTU5YTVkMWVjMDNlNTg2NzI1Yy4uMjQ1NGIz
ZGFlNjhkMGQ0NGUwNzUzN2ZhM2ViODI1MzA2ZTdhNDg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElt
YWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBUZXN0V2l0
aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY28KICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRl
c3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3Nh
Z2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVT
U0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9u
KGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAog
Ym9vbCBUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggZDFhYzYyYjdhNjUyY2Y1Y2MzYWIxOThkZjY4MDhi
N2Q4ZjRmNzIyZC4uYzg5ZjQ3Nzg5MTZhOTQ1OWI3ZThlYTdkMTM4NTAxZDBjODVlOTZkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBA
IC0xMzUsNyArMTM1LDcgQEAgdm9pZCBUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZl
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UoSVBDOjpDb25uZWMKICAgICBpZiAoY29ubmVj
dGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwog
I2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
X1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMg
dG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
OjpkaWRSZWNlaXZlU3luY1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCAxOTlmM2MzMWY1YzA0ZGM5YjhmN2E3OGMyMzUyNTUxMTE0YzgzNDQx
Li41MzYzODIzOGMzYTM2YzQ0NGM0OWY5MmViY2RjMWEwNjljMzlmNjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lk
IFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNz
YWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRs
ZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURf
V0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVz
Y3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
OwogfQogCiBib29sIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJl
ZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1C
dWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGNkYzFlZjE2MTBkZmNmZGEzYmUyNzg3ZWM4
MzMzOTgzNjg1OGEzMGMuLjE4YWRkOGE2ZmI2MDdiNzY4YTM3MDM5ODYzMzA1MDRjMjc4NjJmYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
dHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBA
IC00Myw3ICs0Myw3IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW1CdWZmZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpECiAgICAgaWYgKGNvbm5lY3Rp
b24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNl
bmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9X
SVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBkZDJiNjFiYzM0MTE4Y2M2YmIw
NWM2ODc0YWIwMjgyMWI4ZjFiOWUxLi42Nzg1NGY4MDlmZTZmMmMyNTQyMmM4MjIwNTQzYTE4YzBm
ZTBiNjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNjAs
NyArNjAsNyBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBjbwogICAgIGlmIChjb25uZWN0aW9uLmNv
bm5lY3Rpb24oKS5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBS
SXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxl
ZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCBjMjhlNWU4ZTg4YzcwZDIwOTVhMTNjMTgyNTBjNWMzYWM4NDE3OTYy
Li4xOWFlOWIwYzJkNGEyODNhMjRiNWNhZTgzZmQyODgwMTExMDkwNjM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01l
c3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0xMzUsNyArMTM1
LDcgQEAgdm9pZCBUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjoKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJ
bnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FH
RSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDA1YTg1YjAxOTYwNDIwMTZhYjY4NWYyMGQ0YmVmNzNjNDYyNjU2MDcuLjdlZjEyYmJiY2Y3
NTg3NTI1OTRlMzUzMDAxM2NiODBmNzlkMjljOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTMzLDcgKzEz
Myw4IEBAIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50LmNwcAogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyUHJveHkuY3BwCiAKLU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgQG5vLXVuaWZ5CitOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwCitOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAKIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgQG5vLXVuaWZ5CkBAIC04
NzQsNSArODc1LDYgQEAgUmVtb3RlU2hhZGVyTW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVt
b3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKIFdlYkxvY2tSZWdpc3RyeVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKaW5kZXggNTA4OThlNDYzMDE3MzE5NGFlNGVmN2NjZTQzYWU4ZWI0NjczYTg2
Yi4uMmFkNzk2NDVkNmVmNjgzZGFkNGViMDc2ZjVkZDcyNDcyYmY4NjBiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNyw2ICsxNyw3
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMS1tbS5tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTEwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMTIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
Mi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDE0MTljNWRhYjNkOTc4MjJhMDllMjQw
YjY1YWI5ZDdjYWM4N2Q3ZC4uZTQ1YTQyYWE4YTA1YzcwZWJmMjhmZjBhZmE5OGFjNDllOTMzZDdh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zOTUsNiArMzk1LDcgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJ
UHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAg
Ki87IH07CiAJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVF
Mjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLzsgfTsKKwkJMkNBRUNC
NjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwICovOyB9OwogCQkxQ0FFQ0I2NzI3NDY1QUU0MDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTEwOC5jcHAgKi87IH07CiAJCTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLzsgfTsK
IAkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjEyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICovOyB9OwpAQCAtODgxLDcgKzg4Miw2
IEBACiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0MUUz
RDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OUMx
RTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjExRjUx
IC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OwogCQk0MURENzJBQjI2ODIxNjczMDBB
OTBDNzEgLyogTldTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1NQSS5oICovOyB9OwotCQk0MURF
N0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2
MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRTBBN0NC
MjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAv
KiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNDFFMjQyRTAyNkUwQzkwODAwOUE4QzY0
IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTI0MkRGMjZFMEM5MDQwMDlBOEM2NCAvKiBOZXR3b3Jr
UlRDVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAv
KiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBX
ZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTMxODYsNiArMzE4
Niw3IEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9y
VUlQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViSW5zcGVj
dG9yVUlQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDkuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwOS5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNl
MTExLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1Vu
aWZpZWRTb3VyY2UxMTEuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMi5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEyLmNwcCI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjVGMjc0NjVBRTMwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTA4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2Ux
MDguY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5p
ZmllZFNvdXJjZTEwOC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEwLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNl
cy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwIjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMDQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEw
NC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9Vbmlm
aWVkU291cmNlMTA0LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC00MTU4LDYgKzQxNTksOSBAQAogCQk0MUZDRDZCRDIzQ0UwNDNGMDBDNjI1NjcgLyogUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZDRDZCRTIzQ0UwNDQwMDBDNjI1
NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkYyM0NF
MDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQTI3
NUE1NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREIyNzVBNTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYg
LyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyog
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDZEQzY0
QjI0QTJEOEFEMDA2MUYzOTAgLyogUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyMDIsNiArODIwNiw3
IEBACiAJCQkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3Bw
ICovLAogCQkJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNw
cCAqLywKIAkJCQkxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5j
cHAgKi8sCisJCQkJMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIu
Y3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAi
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcyI7CkBAIC0xMDM1MSw2ICsxMDM1
Niw5IEBACiAJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUZGRDJEQTI3NUE1
NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8sCisJCQkJNDFG
RkQyREIyNzVBNTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCAqLywK
KwkJCQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFz
ay5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHAgKi8sCiAJCQkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8q
IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCAqLywKIAkJCQk0MTUxODUzODIyMjcwRjUzMDA1NDMw
QzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLywKQEAgLTE1MjQyLDcg
KzE1MjUwLDYgQEAKIAkJCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5z
cGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QkNG
NzBERTI2MTVEMDZFMDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdENv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNl
Y0l0ZW1TaGltUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFE
RTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1h
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hh
cmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5
ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTE1NDUzLDYgKzE1NDYwLDcgQEAKIAkJCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFj
ZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDBiODRiYmQzNjhmZWM5ZDRkYTk2N2JmZTMxNDA2MGM4
MDIzYmI0ZGQuLjgzMjA4MjA2YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIyYzZhZDY1ZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM5MSw2ICszOTEsMTIgQEAgYm9v
bCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aXNUaHJvdHRsZWFibGUoKSBjb25zdAog
ICAgIHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdv
cmtlcklkZW50aWZpZXIpKQorICAgICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNvbnZl
cnRGZXRjaFRvRG93bmxvYWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRp
Zmllcik7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZhaWxI
ZWFydEJlYXRDaGVjayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkRpZEZhaWxIZWFydEJlYXRDaGVjayB7
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0sIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmgKaW5kZXggZTdkZjdkOTQxYWNlOTA2NDE0ZWNmZmY1MGM0YmE0NzlkMTQ2NGRkNS4uMDU4
MGQ5ODMyMjhhNzJiYjhjOTk0OWNhMmIxYjRjNzExOGZhYzYxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oCkBAIC0xMDYsNiArMTA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpOwogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2
b2lkIHNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSk7CisgICAgdm9pZCBjb252
ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIpOworICAgIHZvaWQgY2FuY2VsRmV0Y2hEb3dubG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gbV9yZWdpc3RyYWJsZURvbWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNTI4YmVjYTRlYTRjYjU3NTg2YzVm
ODY4MWZkYWFhYjJlMzcxMWQyYy4uZDU0MWI4MDMxOTJiOGQ1NGQxODIxN2ZiMTEyNTZkZjAwNjk1
MzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KQEAgLTQzLDYgKzQzLDggQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlUHJlZmVyZW5jZXNTdG9yZShzdHJ1Y3Qg
V2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQogICAgIENsb3NlKCkKICAgICBTZXRU
aHJvdHRsZVN0YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpCisKKyAgICBDb252ZXJ0RmV0Y2hUb0Rv
d25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllcikKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IGZl
ZThmZWE3YmNjOGQ1OWMwN2UzYzViYTRkNjA5NTUyYTRkNjI4YmYuLmM3ZGU0MTY2OTE3M2M0NTg3
ZTM5MWIyMjY3NWRiY2NhYmZlYWEyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC04NCw3ICs4NSwxMCBAQCB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+
JiYgYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1
ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVE
YXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkg
fSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1
ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRhKQpA
QCAtMTA3LDcgKzExMSwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIC8vIEZvciBu
b3cgYW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0
aGUgZGF0YSB0aHJvdWdoIElQQy4KICAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JV
UkwoKTsKICAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0
YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlk
UmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURh
dGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJl
Y2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRh
KSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MTM1LDcgKzE0MiwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgdWludDhfdCogZGF0YSwgcwogICAgIGlmICghbV9jb25u
ZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXpl
IH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXpl
IH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKQEAgLTE1Nyw3
ICsxNjcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpE
aWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxv
YWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBl
bHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNs
ZWFudXAoKTsKIH0KQEAgLTE3NCw3ICsxODcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRG
aW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAg
LTE5NCw2ICsyMTAsMTIgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpj
YW5jZWwoKQogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udmVydEZldGNoVG9Eb3dubG9hZCgpCit7CisgICAg
bV9pc0Rvd25sb2FkID0gdHJ1ZTsKKyAgICBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwor
fQorCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSwgaGFz
IGNvbm5lY3Rpb24gJWQsIGRpZEZpbmlzaCAlZCwgcmVzcG9uc2UgdHlwZSAlbGQiLCAhIW1fY29u
bmVjdGlvbiwgbV9kaWRGaW5pc2gsIHN0YXRpY19jYXN0PGxvbmc+KG1fcmVzcG9uc2VEYXRhLmlu
ZGV4KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAppbmRleCBiMzQ3Y2Fk
MmFiNWY1NzFiMWEwZTIwNzIwODA0MzY3ZDc3MDE4NjAwLi4wMWY2MTBiZDQzM2EyZTlhZmM5YTFm
ZGQ1NGIwODQzMGI5ODM3ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5o
CkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWROb3RIYW5kbGUoKSBmaW5h
bDsKICAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOwogICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UoKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKSBmaW5h
bDsKIAogICAgIHZvaWQgY2xlYW51cCgpOwogICAgIApAQCAtODQsNiArODUsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
IHsgZmFsc2UgfTsKICAgICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+LCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBVbmlxdWVSZWY8V2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcj4+IG1fcmVzcG9uc2VEYXRhOwogICAgIGJvb2wgbV9kaWRGaW5pc2gg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Rvd25sb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDc5NDhhZjE5ODdiZmU1YTdjMmY3NDFiYmE2MGMzOWVhMDI1Y2RlODEuLjkx
NDM3YTBmNWU4OTcxNDI3YzJkY2Y3NmEyNjQ3ZTU2M2EwYzRkY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
Mi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFNl
cnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzIxOTM0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
IHJ1bm5lciBBUEkgdG8gbG9nIHRoZSB0b3RhbCBkb3dubG9hZCBzaXplLgorICAgICAgICBUaGlz
IGhlbHBzIGVuc3VyaW5nIHRoYXQgc2VydmljZSB3b3JrZXIgbG9hZHMgYXJlIGNvcnJlY3RseSBk
b3dubG9hZGVkIGFuZCBkbyBub3QgcmVseSBvbiBuZXR3b3JraW5nLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5j
b2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCA3Y2VhMDY3NmQyN2I3MjcwMTUwMjk1OWQxN2UwY2I1YzdjZTBlYzZi
Li41Zjg1Mjk5MjA2MzczMWUwYzIxMjhiMjBiYmVmNmZiNzcwZGVjYjk1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTM5LDYgKzM5LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewog
ICAgIC8vIERvd25sb2Fkcy4KICAgICB1bmRlZmluZWQgd2FpdFVudGlsRG93bmxvYWRGaW5pc2hl
ZCgpOwogICAgIHVuZGVmaW5lZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sZWFu
IHZhbHVlKTsKKyAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2xlYW4g
dmFsdWUpOwogCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSX1RSRUVfU0hPV19BTExf
TEFZRVJTICAgICAgICAgICAgPSAxOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9U
UkVFX1NIT1dfTEFZRVJfTkVTVElORyAgICAgICAgID0gMjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGUxZmNlMmNh
NTFmMWIwMmQ5YzQzN2IwOTllZjcxODM2NjE1OTBjYzIuLmEzMjgwZGYxNmNkNDRmNmQwOTgwMDhl
NjE5MmE0YzExMzA0YWUyMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTAwOCw2ICsxMDA4LDExIEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkKICAg
ICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIiwgdmFsdWUp
OwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHZh
bHVlKQoreworICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxkTG9nRG93bmxvYWRTaXplIiwg
dmFsdWUpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUo
SlNTdHJpbmdSZWYgdXNlcm5hbWUpCiB7CiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRBdXRoZW50
aWNhdGlvblVzZXJuYW1lIiwgdG9XSyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAzMWYxMDZmOTkzYjhi
Njc1N2E5NjkyMmQ2YjBjZDRjNGM0NDY4MWFkLi41YzZhOTZjYWUwMWY1OTI1NTQ1YjhmMDYwZWFm
ZGYyZDZiZTFiZjI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoKICAgICAvLyBE
b3dubG9hZHMKICAgICBib29sIHNob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQoKSBjb25zdCB7IHJl
dHVybiBtX3Nob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQ7IH0KICAgICB2b2lkIHNldFNob3VsZExv
Z0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRT
aXplKGJvb2wpOwogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZEFsbG93RWRpdGluZzsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IGVkMjgwMmZiMWU3NjZkYzVkZTY3YzQ0ZDE1NzY2MTYzMmMzOTMx
YTMuLjk5NjFhNjNiOWFlZThkMGRlYjI2ZmJhZTI5NzE2NzA0NjFjZWI1YTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6bmF2aWdhdGlvbkRpZEJlY29tZURvd25sb2FkU2hhcmVkKFdLRG93
bmxvYWRSZWYgZG93bmxvYWQsIGMKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3du
bG9hZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwKICAgICAgICAgVGVzdENvbnRy
b2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lLAotICAgICAgICBu
dWxscHRyLCAvLyBkaWRXcml0ZURhdGEKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2Fk
RGlkV3JpdGVEYXRhLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGaW5pc2gs
CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwKICAgICB9OwpAQCAtMTEw
OCw2ICsxMTA4LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICAgICAgY2xlYXJCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogICAgIH0KIAorICAgIG1fZG93bmxvYWRU
b3RhbEJ5dGVzV3JpdHRlbiA9IC0xOworCiAgICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0K
IApAQCAtMjIzNyw2ICsyMjM5LDggQEAgV0tTdHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLRG93bmxvYWRSZWYKIAogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGaW5pc2goV0tEb3dubG9hZFJlZikKIHsKKyAgICBp
ZiAobV9zaG91bGRMb2dEb3dubG9hZFNpemUpCisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24t
Pm91dHB1dFRleHQobWFrZVN0cmluZygiRG93bmxvYWQgc2l6ZTogIiwgbV9kb3dubG9hZFRvdGFs
Qnl0ZXNXcml0dGVuLCAiLlxuIikpOwogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJh
Y2tzKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBj
b21wbGV0ZWQuXG4iKTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERv
bmUoKTsKQEAgLTIyNjksNiArMjI3MywxOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9h
ZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXSwogICAg
IHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobnVsbHB0ciwgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdy
aXRlRGF0YShsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4pCit7CisgICAgaWYgKCFtX3Nob3Vs
ZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKQorICAgICAgICByZXR1cm47CisgICAgbV9kb3dubG9hZFRv
dGFsQnl0ZXNXcml0dGVuID0gdG90YWxCeXRlc1dyaXR0ZW47Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGxvbmcg
bG9uZyBieXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25n
IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7Cisg
ICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSktPmRvd25sb2FkRGlkV3JpdGVEYXRhKHRvdGFsQnl0ZXNXcml0dGVuKTsKK30KKwogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbiByZWFzb24pCiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVk
IG11bHRpcGxlIHRpbWVzIHdoZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24gV2luZG93
cywgc28KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1Y2Q0OWZh
ZjMwZGU3OGNjZWFjZDVhZDAzYzg0ODZkYzVmYzkxYzEwLi4zMDJjNWQ2ZTVkYWVmNDVmYjIxZjlm
ZmU5MTI0MjQ1ZTU3ZWNmZjRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkTG9nSGlz
dG9yeUNsaWVudENhbGxiYWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0hpc3RvcnlD
bGllbnRDYWxsYmFja3MgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0NhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91
bGRMb2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlID0gc2hvdWxkTG9nOyB9
CiAgICAgdm9pZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sIHNob3VsZExvZykg
eyBtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzID0gc2hvdWxkTG9nOyB9CisgICAgdm9pZCBz
ZXRTaG91bGRMb2dEb3dubG9hZFNpemUoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3du
bG9hZFNpemUgPSBzaG91bGRMb2c7IH0KIAogICAgIGJvb2wgaXNDdXJyZW50SW52b2NhdGlvbihU
ZXN0SW52b2NhdGlvbiogaW52b2NhdGlvbikgY29uc3QgeyByZXR1cm4gaW52b2NhdGlvbiA9PSBt
X2N1cnJlbnRJbnZvY2F0aW9uLmdldCgpOyB9CiAKQEAgLTQ3Myw3ICs0NzQsMTAgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgYm9vbCBkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJM
KFdLRG93bmxvYWRSZWYsIFdLVVJMUmVzcG9uc2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qg
dm9pZCopOwogICAgIGJvb2wgZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChX
S0Rvd25sb2FkUmVmLCBXS1VSTFJlcXVlc3RSZWYpOwogICAgIHN0YXRpYyB2b2lkIGRvd25sb2Fk
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotICAgIAorCisg
ICAgdm9pZCBkb3dubG9hZERpZFdyaXRlRGF0YShsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4p
OworICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYsIGxv
bmcgbG9uZyBieXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBs
b25nIHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
CiAgICAgc3RhdGljIHZvaWQgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1BhZ2VSZWYsICBXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9p
ZCB3ZWJQcm9jZXNzRGlkVGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKIApA
QCAtNjYzLDYgKzY2Nyw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uR3JhbnRlZCB7IGZhbHNlIH07CiAKICAgICBib29sIG1faXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkIHsgdHJ1ZSB9OworCisgICAgbG9uZyBsb25nIG1fZG93bmxv
YWRUb3RhbEJ5dGVzV3JpdHRlbiB7IC0xIH07CisgICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2Fk
U2l6ZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggM2RmYWM1ZmMwMDllNDk2NTQ0NGU2YjQw
OTFkYmVlYjJlMjIxZDJiYi4uNzJmYTgyYmJjMDEwMjk2ZjA0ZDEzMGVjOWJjNmE0MzU3Y2JkMGU5
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTUzNyw2
ICs1MzcsMTEgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0U2hvdWxkTG9nRG93bmxvYWRTaXplIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuVmFsdWUobWVzc2FnZUJv
ZHkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIpKSB7
CiAgICAgICAgIFdLU3RyaW5nUmVmIHVzZXJuYW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkp
OwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0QXV0aGVudGljYXRpb25V
c2VybmFtZSh0b1dURlN0cmluZyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg1OWVkYzg2Y2I2ODIxODll
OTIzMTIzMGQwNDYzOTEyYTg1YjRmYjUuLjQ0NGM1ZWRlNzU3ZWU1NGY2ODdiODYxOTMyODBiNjUx
YTMwZjJjNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0xMi0wNiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxv
YWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIx
NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qczoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC5odHRwcy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1s
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25s
b2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxv
YWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1zY3JpcHQucHk6CisKIDIwMjEtMTItMDQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQ1NTIGFuaW1hdGlvbiBzb3J0aW5nIG1heSBjcmFzaCBkdWUgdG8g
QW5pbWF0aW9uTGlzdCBjb3B5IHVwb24gQ1NTIEFuaW1hdGlvbiByZW1vdmFsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwpp
bmRleCBkNWM2NjMwYmI1MTFmNWY3YWIyOGVkZDIxYjQwYWE4ZmMzMzQ2ZWY3Li42MDAyOTIzOWQz
N2UwYzJlZmVhMjFjMjU1ZGVmMmZhZmY3YmZiODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxv
YWQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKQEAgLTEsMyArMSwy
MSBAQAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlm
IChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygiZG93bmxvYWQtYm9keSIpKSB7CisgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJhIGRvd25sb2FkIGJvZHkiLCB7ImhlYWRl
cnMiIDogW1siQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAg
ICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1zdHJlYW0iKSkgewor
ICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICAgICAg
c3RhcnQ6IChjb250cm9sbGVyKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlciA9
IG5ldyBUZXh0RW5jb2RlcigpOworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShl
bmNvZGVyLmVuY29kZSgiYSBmaXJzdCBjaHVuaywgIikpOworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoKCkgPT4geyBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoInRoZW4gYSBz
ZWNvbmQgY2h1bmsiKSk7IH0sIDEwMCk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9
PiB7IGNvbnRyb2xsZXIuY2xvc2UoKTsgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSwgeyJoZWFk
ZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAg
ICAgZXZlbnQucmVzcG9uZFdpdGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQog
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QudXJsKSk7CiB9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJlYmMyYjg2ZTY2YmIzOWM5YmMwOWQzZGE5M2Y0
MDMyNDMxYmNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZG93bmxvYWQtYm9keSIKK0Rvd25sb2FkIHNpemU6IDE1
LgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkMmQ0ODBhOTFkYWFjMWM2
ZDRkMGVlYzg5ZWNjMjg3ZjRiYTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRl
c3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9h
ZFVuZGlzcGxheWFibGVNSU1FVHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVz
dCgpCit7CisgICAgYXdhaXQgaW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLXdvcmtlci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsK
KyAgICB3aW5kb3cubG9jYXRpb24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxv
YWQtYm9keSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlhMTllYmUzN2EzMTRiM2Y1ODYyNDhhNzY2
N2ZhNTBjMGYzOWZkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcg
VVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJkb3dubG9hZC1zdHJlYW0iCitEb3dubG9hZCBz
aXplOiAzNC4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFt
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3M2Zl
NDY5NjQwNjQzMzAzYmUwM2ZhNzQwZGM4YzFjYmE4MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxv
YWQtc3RyZWFtLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tz
KHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBm
dW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNl
cy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9y
ZXNvdXJjZXMvIik7CisgICAgd2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL2Rvd25sb2FkLXN0cmVhbSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGQwOGVmODQ2ZDMyZjZlYzkxZDk0MjczYzljMjRlMGYw
ZjJjYTYyMDIuLjllMzMzZDU2OTFlOTliYmU1ZGUzMzJiNWNhZmIxZTRmZGVjYTM3MjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSw1IEBACiBEb3dubG9hZCBzdGFydGVkLgogRG93bmxvYWRpbmcgVVJM
IHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJkb3dubG9hZC1iaW5hcnkucHkiCitEb3dubG9hZCBz
aXplOiA5LgogRG93bmxvYWQgY29tcGxldGVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQuaHR0cHMuaHRtbAppbmRleCA4YzlhZGEzZmM4MTJjMzYwOTdiM2QwMzk0MTY0
MDkzNWNiMjJlNzQ2Li40YTVhYTg3YjRlYzBkM2Q3M2M5NzE2MWUwNjJmYzdkYzY4YTE3YjI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKQEAgLTcs
NiArNyw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7
CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOwogICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGRE
b3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXModHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI3OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVs
b2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQu
CitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtc2NyaXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBj
b21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0
LXByZWxvYWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmE4YzdiZTRlYTY5ODA1MDhhZmZlNzEwNWNk
NGYwZTI5Y2JlNDM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3Vn
aC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2Fs
bGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVl
KTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2
YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0
L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1z
Y3JpcHQucHk/ZG93bmxvYWQ9eWVzJm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nPXllcyZ0b2tlbj0i
ICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IChl
dmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3RpdmF0aW5nIikK
KyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3Nh
Z2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VTZXBhcmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigo
KSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1
cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOwor
ICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAg
IGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEgfSwgW2NoYW5u
ZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmcoKTsKKworICAgIGZl
dGNoKHVybCArICImdmFsdWU9dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BPU1QnIH0pOworCisg
ICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIHByZWxvYWQgd2ls
bCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQsIGRpcmVjdGx5IHRo
cm91Z2ggcHJlbG9hZCBzaW5jZSBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IGhhbmRsZSB0aGUgZXZl
bnQuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxvYWQi
LgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2VyQWN0
aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2Fk
LWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmOGFlNWRiZDNhYTFi
ZWNmNmUwZDM2ZmExYjFiMmU1MGQ5MTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93
bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRl
ZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2Fk
IGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmZmRmZWM0MmJjMzIx
MjA3MDMyYzkxZjg0NDg3YjIwNGJlNTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRv
d25sb2FkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1
ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91
bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXModHJ1ZSk7Cit9CisKK3ZhciBhY3RpdmVX
b3JrZXI7Cit2YXIgdXVpZCA9IHRva2VuKCk7Cit2YXIgdXJsID0gIi9XZWJLaXQvc2VydmljZS13
b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weT9k
b3dubG9hZD15ZXMmdG9rZW49IiArIHV1aWQ7Cit2YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0g
bmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQor
eworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5w
b3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRh
ID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmlnZ2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0
aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBk
b1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdh
aXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIGxl
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigi
L1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3Jr
ZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwg
eyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRp
b24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFu
bmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3Rp
dmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAiJnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRo
b2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQgaWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29y
a2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5kIHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3du
bG9hZGVkLCB0aHJvdWdoIHRoZSBzZXJ2aWNlIHdvcmtlci4KKyAgICAvLyBEb3dubG9hZCBzaXpl
IHNob3VsZCBiZSBzaXplIG9mICJ1c2UtcHJlbG9hZCIuCisgICAgY29uc3QgcHJvbWlzZSA9IHdp
dGhJZnJhbWUodXJsKTsKKworICAgIHRyaWdnZXJBY3RpdmF0aW9uKCk7Cit9Citkb1Rlc3QoKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzCmluZGV4IGQwNGE0OWE3OGNkODkyOWE0ZmQwZGI0YWIw
Y2ViODAxYTAxOTUwZTguLjY4NTBlMDFkYTlmMWI2NmZjY2RmM2E4ZjE3ODk2MTE3NDNiODFiYmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1z
ZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMK
QEAgLTIzLDUgKzIzLDcgQEAgb25hY3RpdmF0ZSA9IChldmVudCkgPT4gewogfQogCiBzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVl
c3QudXJsLmluY2x1ZGVzKCJuby1mZXRjaC1ldmVudC1oYW5kbGluZyIpKQorICAgICAgICByZXR1
cm47CiAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdCkpOwogfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2Vz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXNjcmlwdC5weQppbmRleCAyMDY3ODM2ZjU0MTcwM2RlODRmMDhiOGViM2U2Y2M4YzMzODEz
OWZlLi45YTlhZmNkYjQ2NTNmZjY3ZTVkM2RjNjU1YmY4Yjk5NGVlYzc3OTA2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNl
cnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1z
Y3JpcHQucHkKQEAgLTMxLDUgKzMxLDEwIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToK
ICAgICBpZiBub3QgdmFsdWU6CiAgICAgICAgIHZhbHVlID0gYiJub3RoaW5nIgogICAgIHJlc3Bv
bnNlLmhlYWRlcnMuc2V0KGIiQ2FjaGUtQ29udHJvbCIsIGIibm8tY2FjaGUiKQorCisgICAgaWYg
YiJkb3dubG9hZCIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KGIiQ29udGVudC1UeXBlIiwgYiJhcHBsaWNhdGlvbi9iaW5hcnkiKQorICAgICAgICByZXR1cm4g
dmFsdWUuZGVjb2RlKCkKKwogICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBl
IiwgYiJ0ZXh0L2h0bWwiKQogICAgIHJldHVybiAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cu
dmFsdWUgPSAnJXMnOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IiAlIHZhbHVlLmRlY29kZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446033</attachid>
            <date>2021-12-06 05:37:49 -0800</date>
            <delta_ts>2021-12-07 02:22:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211206143746.patch</filename>
            <type>text/plain</type>
            <size>94068</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uMTMwNDRiYzFiNDFmNzlkYzYzMTBkODU2OTk4MWI0
MjUxYzBhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFVzZSBlbmQgYml0
cyBpbiB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MTc5NDc1ZjdkZmQwOGYxNDhkMDI1
ODdlNDBjZmQ1OWIwMWFhOGRhLi4wMjJhMWEzYjE5OTUxMGRiMjdhMjc3ZWYxOWU3OGZjYTUzNWQz
NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9h
ZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBk
b3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1
c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3
b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBh
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9h
ZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4K
KyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQg
c2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAg
ICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFs
bG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlz
c3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMg
bm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRz
IGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAg
IEluY3JlYXNlIHVuaWZpZWQgYnVpbGQgZmlsZXMgdG8gMTEyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBTY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENW
UGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0
aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpkaWRSZWNlaXZlVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRoU3RyZWFtQnVm
ZmVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0
V2l0aFN0cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
Ojpkb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3du
bG9hZFByb3h5KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRl
ciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IGViMjY2YjZjMDdl
NjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUyMzBmOWJkYjk5YTVlODM4N2RmZDk2
MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OCw2ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0
Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAK
aW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0MDI2NWNjMjZkYi4uZGI2YzkzYjhi
ZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBAIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKKwordm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkICVsbHUiLCBmZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRvIGNsaWVudCA9IG1fb25nb2luZ0Zl
dGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW2NsaWVudCA9IFJlZiB7
ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVudC0+Y29udmVydEZldGNoVG9Eb3du
bG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworfQorCiB2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAgIGF1dG8gY2xpZW50ID0gbV9vbmdv
aW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAw
YTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1ZjRhLi4wMWIzYWQwNDkxNWQ0YmUy
N2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
LCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcm
JiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbmNlbEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250
aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVGZXRjaChT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCBiMWRiYmI1NTQ5ZjdhMDUxYmNjYjBkYmUyZjIzOTlhYWJmMWFiOTIxLi4y
NTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwKICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNWJhNjRiNDRiZTFlNTc3NTA4OGZjNmU5MDU1
OTljN2NkNTc4M2NkMy4uNDA0YTcyMmM3NjkwMDAwYTBmMDNiOWE4MDBkZmM1YjdhMWUzMGJkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
ODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDg2ZWZkNmJjOGQ5ZDE5MzcwZWY5ZGY4NWNiNWI5ZGEy
YzM3ZmE5NS4uYjU3Zjk3MDFhNGU5OTU2M2M4ZDNhMGI5ODk1ZTI0MGZlYjA4NzdjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zOTYs
NiArMzk2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA2ODRmYWNkNWQ3NmZjMjRhMjdiMDdhZjQ3MGNjM2Y5YTNjZDFjMDYwLi5iM2I3
MTk3N2I0YTBhZTQxYTJiNmMwZDc1ZDM3MzdmMDkzOWE3MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJTmV0
d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBc
CiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIFwKKwlOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAJTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gXAogCU5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFkNzNlNjc0MTcwLi43MTYyYjE5MDBi
OTlhY2YyMDg3MWJhMTlhZWI1OTg4YjNmMDYyZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlBpbmdMb2FkLmgiCiAjaW5jbHVkZSAi
UHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMjY0LDYg
KzI2NSwxMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICAgICAgbV9zd0NvbnRl
eHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGlmIChtX3N3Q29udGV4dENvbm5lY3Rpb24p
CisgICAgICAgICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVEb3dubG9hZFRh
c2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkKQEAgLTY5NSw4ICs3MDIs
NyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291
cmNlTG9hZFRvRG93bmxvYWQoc3RkOjpvcHRpbwogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKIAotICAgIC8vIEluIGNhc2UgYSByZXNwb25zZSBpcyBzZXJ2ZWQgZnJv
bSBzZXJ2aWNlIHdvcmtlciwgd2UgZG8gbm90IGhhdmUgeWV0IHRoZSBhYmlsaXR5IHRvIGNvbnZl
cnQgdGhlIGxvYWQuCi0gICAgaWYgKCFtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciB8fCByZXNw
b25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIp
IHsKKyAgICBpZiAoIW1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyKSB7CiAgICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQobV9zZXNzaW9uSUQs
IGRvd25sb2FkSUQsIHJlcXVlc3QsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcAppbmRleCBiYWMwMjJhYjQ1NDMwZjY1MWIxODlhYzAxMjA3YTA2MDYwOGMxNjcx
Li42ZGYxNDEwNzM2YWJhMmYyZDlhMTk2MTU2YzBiMWJhZmE4ZTcwNDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNTYsNiArNTYsMTMgQEAg
TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQsIEJsb2JS
ZWdpc3RyeUltcGwqIGJsb2JSZWdpc3QKICAgICAgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNr
OjpjcmVhdGUobmV0d29ya1Nlc3Npb24sICp0aGlzLCBtX3BhcmFtZXRlcnMpOwogfQogCitOZXR3
b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwgTmV0d29ya1Nl
c3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBGdW5jdGlvbjxSZWZQdHI8TmV0d29ya0RhdGFU
YXNrPihOZXR3b3JrRGF0YVRhc2tDbGllbnQmKT4mIGNyZWF0ZVRhc2spCisgICAgOiBtX2NsaWVu
dChjbGllbnQpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQ
cm9jZXNzKCkpCisgICAgLCBtX3Rhc2soY3JlYXRlVGFzaygqdGhpcykpCit7Cit9CisKIHZvaWQg
TmV0d29ya0xvYWQ6OnN0YXJ0KCkKIHsKICAgICBpZiAoIW1fdGFzaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAppbmRleCBjMzc3M2M5ODc4NTUzY2U1MzRkMDU0
YWJmZmRkZWJiMjllZTA4NGQyLi5iOTJmOWM2MWUxMzU5MGM0MWNiYzFkOGIzODI4ZDNhY2NiNzUx
YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCkBAIC00
Niw2ICs0Niw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkIGZpbmFsIDogcHJpdmF0ZSBOZXR3b3JrRGF0
YVRhc2tDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IE5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1w
bCosIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBOZXR3b3JrU2Vzc2lvbiYpOworICAgIE5ldHdv
cmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiwgTmV0d29ya1Nlc3Npb24mLCBjb25zdCBGdW5jdGlv
bjxSZWZQdHI8TmV0d29ya0RhdGFUYXNrPihOZXR3b3JrRGF0YVRhc2tDbGllbnQmKT4mKTsKICAg
ICB+TmV0d29ya0xvYWQoKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBl
NTBjZjRhYmJlNTY0ZTRjYTNmYjcyNmNhYTlkNTY5YzU0YjA5ZDcyLi5iODdhZDRkM2MxY2EwMzEw
ZGIyM2E3OTIwODllNWQxODdhYzhmOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00ODQsNiArNDg0LDEx
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9h
ZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291CiB7CiAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJj
b252ZXJ0VG9Eb3dubG9hZDogKGRvd25sb2FkSUQ9JSIgUFJJdTY0ICIsIGhhc05ldHdvcmtMb2Fk
PSVkLCBoYXNSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPSVkKSIsIGRvd25sb2FkSUQudG9VSW50
NjQoKSwgISFtX25ldHdvcmtMb2FkLCAhIW1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcik7CiAK
KyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgaWYgKG1fc2VydmljZVdvcmtlckZldGNo
VGFzayAmJiBtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2stPmNvbnZlcnRUb0Rvd25sb2FkKG1fY29u
bmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKSwgZG93bmxvYWRJRCwg
cmVxdWVzdCwgcmVzcG9uc2UpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIC8vIFRo
aXMgY2FuIGhhcHBlbiBpZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNhY2hlLgog
ICAgIGlmICghbV9uZXR3b3JrTG9hZCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQ
cm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChzZXNzaW9uSUQoKSwgZG93
bmxvYWRJRCwgcmVxdWVzdCwgbV9wYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2N2RlYWRkODkzNjU1NmJjZDk3ODcxN2RjMmQ3MzMyOWYzN2Q3YjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFz
ay5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRG93bmxvYWRN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2soTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9u
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpCisgICAgOiBOZXR3b3JrRGF0YVRhc2so
c2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RV
c2UsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24oc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb24pCisgICAgLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKQorICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICAsIG1fZmV0Y2hJZGVudGlmaWVyKGZldGNo
SWRlbnRpZmllcikKKyAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQorICAgICwgbV9uZXR3
b3JrUHJvY2VzcyhzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpKQorewor
ICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQor
CitTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjp+U2VydmljZVdvcmtlckRvd25sb2FkVGFzaygp
Cit7CisgICAgaWYgKG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAgICAgIG1fc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb24tPnVucmVnaXN0ZXJEb3dubG9hZCgqdGhpcyk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c2Vu
ZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gbV9zZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbiA/IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPmlwY0Nvbm5l
Y3Rpb24oKS5zZW5kKHN0ZDo6Zm9yd2FyZDxNZXNzYWdlPihtZXNzYWdlKSwgMCkgOiBmYWxzZTsK
K30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjYW5jZWwoKQoreworICAgIGlm
IChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAg
ICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZTsKKyAgICB9CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExv
Y2F0aW9uKTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9
KTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworfQorCit2b2lkIFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2s6OnJlc3VtZSgpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5u
aW5nOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmludmFsaWRhdGVBbmRD
YW5jZWwoKQoreworICAgIGNhbmNlbCgpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2s6OnNldFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBmaWxl
bmFtZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwg
Ym9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKCkpIHsKKyAg
ICAgICAgZGlkRmFpbERvd25sb2FkKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgpKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdE
b3dubG9hZExvY2F0aW9uKGZpbGVuYW1lLCB7IH0sIGFsbG93T3ZlcndyaXRlKTsKKworICAgIEFT
U0VSVCghbV9zYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7Cisg
ICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5j
b25zdW1lKCk7CisKKyAgICBpZiAoYWxsb3dPdmVyd3JpdGUgJiYgRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhmaWxlbmFtZSkpCisgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZW5hbWUp
OworCisgICAgaWYgKCFzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6Q29udmVydEZldGNoVG9Eb3dubG9hZCB7IG1fc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlm
aWVyIH0pKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZChjYW5jZWxsZWRFcnJvcihmaXJzdFJl
cXVlc3QoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kb3dubG9hZEZpbGUg
PSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uLCBGaWxlU3lz
dGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsKKyAgICBpZiAobV9kb3dubG9hZEZpbGUgPT0gRmls
ZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICBkaWRGYWlsRG93
bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKworICAgIGF1dG8mIG1hbmFn
ZXIgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKTsKKyAgICBhdXRvIGRvd25s
b2FkID0gbWFrZVVuaXF1ZTxEb3dubG9hZD4obWFuYWdlciwgbV9kb3dubG9hZElELCAqdGhpcywg
Km5ldHdvcmtTZXNzaW9uKCkpOworICAgIGF1dG8qIGRvd25sb2FkUHRyID0gZG93bmxvYWQuZ2V0
KCk7CisgICAgbWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhtX2Rvd25sb2FkSUQs
IFdURk1vdmUoZG93bmxvYWQpKTsKKyAgICBkb3dubG9hZFB0ci0+ZGlkQ3JlYXRlRGVzdGluYXRp
b24obV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbik7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
LCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQoreworICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm47
CisKKyAgICBzaXplX3QgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9k
b3dubG9hZEZpbGUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgaWYgKGJ5dGVzV3Jp
dHRlbiAhPSBkYXRhLnNpemUoKSkgeworICAgICAgICBkaWRGYWlsRG93bmxvYWQoY2FuY2VsbGVk
RXJyb3IoZmlyc3RSZXF1ZXN0KCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
ZG93bmxvYWRCeXRlc1dyaXR0ZW4gKz0gYnl0ZXNXcml0dGVuOworICAgIGlmIChhdXRvKiBkb3du
bG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVu
ZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZURhdGEoYnl0ZXNX
cml0dGVuLCBtX2Rvd25sb2FkQnl0ZXNXcml0dGVuLCAwKTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgLy8gRklYTUU6IFN1cHBvcnQgd3JpdGluZyBmb3Jt
RGF0YSBpbiBkb3dubG9hZHMuCisgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwg
IlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YSBub3QgaW1wbGVt
ZW50ZWQiKTsKKyAgICBkaWRGYWlsRG93bmxvYWQoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0
KCkpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGaW5pc2goKQor
eworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworCisgICAgRmlsZVN5c3RlbTo6Y2xv
c2VGaWxlKG1fZG93bmxvYWRGaWxlKTsKKyAgICBtX2Rvd25sb2FkRmlsZSA9IEZpbGVTeXN0ZW06
OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9u
KSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tlKCk7CisgICAgICAgIG1fc2Fu
ZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKGF1dG8gZG93bmxvYWQg
PSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdE
b3dubG9hZElEKSkKKyAgICAgICAgZG93bmxvYWQtPmRpZEZpbmlzaCgpOworCisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRoRXJyb3IoeyB9KTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworICAgIGRp
ZEZhaWxEb3dubG9hZChlcnJvcik7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFz
azo6ZGlkRmFpbERvd25sb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlm
IChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAg
ICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZTsKKyAgICB9CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExv
Y2F0aW9uKTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3Mt
PmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAg
ICBkb3dubG9hZC0+ZGlkRmFpbChlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlKCkpOworCisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRoRXJyb3IoZXJy
b3IpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlZDA4ZTQyYjBmOWVjZTZiOTU1MDJjNzAwN2UwZTAzY2ZjZThiMzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUg
IkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmls
ZVN5c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0xvYWQ7CitjbGFzcyBOZXR3
b3JrUHJvY2VzczsKK2NsYXNzIFNhbmRib3hFeHRlbnNpb247CitjbGFzcyBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjsKKworY2xhc3MgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayA6IHB1
YmxpYyBOZXR3b3JrRGF0YVRhc2sgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4gY3JlYXRlKE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpIHsgcmV0dXJuIGFkb3B0
UmVmKCogbmV3IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soc2Vzc2lvbiwgY2xpZW50LCBjb25u
ZWN0aW9uLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCkpOyB9CisgICAgflNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2soKTsKKworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoSWRlbnRpZmllcjsgfQorCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNz
aW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgRG93bmxvYWRJRCk7CisKKyAgICAvLyBJUEMgTWVzc2Fn
ZQorICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29u
c3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkRmluaXNoKCk7CisgICAg
dm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKworICAgIC8vIE5l
dHdvcmtEYXRhVGFzaworICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CisgICAgdm9pZCByZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBmaW5hbDsKKyAgICBTdGF0
ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICB2b2lkIHNldFBl
bmRpbmdEb3dubG9hZExvY2F0aW9uKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmLCBib29sIC8qYWxsb3dPdmVyd3JpdGUqLykgZmluYWw7CisKKyAgICB2
b2lkIGRpZEZhaWxEb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3Nh
Z2UmJik7CisKKyAgICBXZWFrUHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbj4gbV9z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgbV9mZXRjaElkZW50aWZpZXI7CisgICAgRG93bmxvYWRJRCBt
X2Rvd25sb2FkSUQ7CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwor
ICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247CisgICAgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3dubG9hZEJ5dGVz
V3JpdHRlbiB7IDAgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRlZCB9Owor
fTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2subWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZDNiZmI3Y2MzMTA5Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5vdFJlZkNvdW50
ZWQgeworICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBEaWRS
ZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBl
bmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKaW5k
ZXggZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNjg3NjU2ZTU3MDAy
ZGFhYzFjNmE3YWZmZTdhNTBjOWU3YTNiOGY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Np
b24uaCIKQEAgLTMwMiw3ICszMDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpj
YW5ub3RIYW5kbGUoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbmNlbEZyb21D
bGllbnQoKQogewotICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGllbnQ6Iik7
CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDolZCIsIG1faXNEb25l
KTsKKyAgICBpZiAobV9pc0RvbmUpCisgICAgICAgIHJldHVybjsKKwogICAgIHNlbmRUb1NlcnZp
Y2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxG
ZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pOwogfQogCkBAIC00MTYsNiArNDIwLDI2IEBAIE5l
dHdvcmtTZXNzaW9uKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzZXNzaW9uKCkKICAgICByZXR1
cm4gbV9zd1NlcnZlckNvbm5lY3Rpb24gPyBtX3N3U2VydmVyQ29ubmVjdGlvbi0+c2Vzc2lvbigp
IDogbnVsbHB0cjsKIH0KIAorYm9vbCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjb252ZXJ0VG9E
b3dubG9hZChEb3dubG9hZE1hbmFnZXImIG1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICBpZiAobV9wcmVsb2FkZXIgICYmICFtX3ByZWxvYWRlci0+aXNTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBtX3By
ZWxvYWRlci0+Y29udmVydFRvRG93bmxvYWQobWFuYWdlciwgZG93bmxvYWRJRCwgcmVxdWVzdCwg
cmVzcG9uc2UpOworCisgICAgYXV0byogc2Vzc2lvbiA9IHRoaXMtPnNlc3Npb24oKTsKKyAgICBp
ZiAoIXNlc3Npb24gfHwgIW1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1faXNEb25lID0gdHJ1ZTsKKworICAgIC8vIEZJWE1FOiBXZSBtaWdo
dCB3YW50IHRvIGtlZXAgdGhlIHNlcnZpY2Ugd29ya2VyIGFsaXZlIHVudGlsIHRoZSBkb3dubG9h
ZCBlbmRzLgorICAgIGF1dG8gc2VydmljZVdvcmtlckRvd25sb2FkTG9hZCA9IG1ha2VVbmlxdWU8
TmV0d29ya0xvYWQ+KG1fbG9hZGVyLCAqc2Vzc2lvbiwgWyZdKGF1dG8mIGNsaWVudCkgeworICAg
ICAgICByZXR1cm4gU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6Y3JlYXRlKCpzZXNzaW9uLCBj
bGllbnQsICptX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVx
dWVzdCwgZG93bmxvYWRJRCk7CisgICAgfSk7CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3Jr
TG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRG93bmxvYWRM
b2FkKSwgW10oYXV0bykgeyB9LCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBTV0ZFVENIX1JFTEVB
U0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAppbmRleCBhYmE5MDU3
MmYwNTFlZWQ5MGYyZjdhOWQ1MzUwNWUxYTRmNGU5OGMyLi5jMzQ1ODAyNjdmYjMyNjllNmRjYmRj
ZWZjMzRkMDY4MmM2YTA4ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmg+CkBAIC01NCw2ICs1NSw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBEb3dubG9hZE1hbmFnZXI7CiBjbGFzcyBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIFNlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOwpAQCAtODUsNiArODcsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjYW5ub3RIYW5kbGUoKTsKICAgICB2b2lkIGNvbnRleHRDbG9zZWQoKTsKIAorICAgIGJvb2wg
Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OworCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgU2hvdWxkU2V0U291cmNlIDogYm9vbCB7IE5v
LCBZZXMgfTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAppbmRleCA3MWUwY2Y2YzZkYzdiZWE1MjJjOTA2MDA1NTVm
NTcyMTYxYzNjMmY0Li4wMWMxZTI1NjRhODYxMjJlYjY3MWUwZjZhODY5ZmE5ODdiZTI2ZDIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgpAQCAtMjQyLDYg
KzI0MywxNSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjp3YWl0Rm9y
Qm9keShCb2R5Q2FsbGJhY2smJiBjYWxsYmFjaykKICAgICBtX2JvZHlDYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
Ojpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXImIG1hbmFnZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIW1fbmV0
d29ya0xvYWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1hbmFnZXIuY29udmVydE5l
dHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBzdGQ6OmV4Y2hhbmdlKG1fbmV0d29ya0xv
YWQsIG51bGxwdHIpLCBXVEZNb3ZlKG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciksIHsgfSwg
cmVxdWVzdCwgcmVzcG9uc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKaW5kZXggMWU3OGMy
Y2VmYTE1NDg0MTA0MDYwZjNiMTlkYzUwZTZjYjhmMWViNC4uOGE0ZjNjZGM0YTQxNjBlOWFiNzVi
NzY1NjFmNDIxZWQzYzdlNWY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiTmV0
d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENsaWVudC5oIgogI2luY2x1
ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgpAQCAtMzksNiArNDAsNyBAQCBjbGFzcyBOZXR3
b3JrTG9hZE1ldHJpY3M7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBEb3dubG9hZE1h
bmFnZXI7CiBjbGFzcyBOZXR3b3JrTG9hZDsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogCkBAIC02
MCw2ICs2Miw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRy
aWNzOyB9CiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmVuYWJsZWQ7IH0KIAorICAgIGJvb2wgY29udmVydFRv
RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCiBwcml2
YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEodW5z
aWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNU
b0JlU2VudCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDhiMjEzODUyZDBmMTE3ZGVmODE5ZDQ1MmRiN2I4ZmNm
NDllMzc1NmIuLjY4NmVmZTljZmU2NmM0ODBlNzEwMzFiM2EwZGRjMDUzNjQ4NWQxMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBA
IC0xOTcsNiArMTk3LDI3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp1
bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYgdGFzCiAgICAgbV9vbmdvaW5n
RmV0Y2hlcy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZpZXIoKSk7CiB9CiAKK3ZvaWQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRSZWNlaXZlRG93bmxvYWRUYXNrTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRG93bmxvYWRzLmZpbmQobWFrZU9iamVjdElkZW50
aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKKyAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vbmdvaW5nRG93bmxvYWRzLmVuZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpdGVyYXRvci0+dmFsdWUtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cmVn
aXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAgIEFT
U0VSVCghbV9vbmdvaW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkp
KTsKKyAgICBtX29uZ29pbmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVyKCksIHRh
c2spOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3Rl
ckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgQVNTRVJU
KG1fb25nb2luZ0Rvd25sb2Fkcy5jb250YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7Cisg
ICAgbV9vbmdvaW5nRG93bmxvYWRzLnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKK30K
KwogV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjp3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDRhMGIxNTM3MWZmOTY3MTU5ZGZlNjYxMjU4
ZTQ1NTc2ZTc1MjExMGQuLmU4MDhiY2EwMjU3MjEzNjViZjM0Nzc4ZmI1OWQ0MDllYjRhOTc0YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgK
QEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oPgpAQCAtNjgsMTQgKzY5LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNl
bEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAg
dm9pZCBkaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFRhc2tNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAgICAgdm9pZCBzZXRUaHJvdHRsZVN0YXRlKGJv
b2wgaXNUaHJvdHRsZWFibGUpOwogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2lzVGhyb3R0bGVhYmxlOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRmV0Y2goU2Vydmlj
ZVdvcmtlckZldGNoVGFzayYpOwogICAgIHZvaWQgdW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2smKTsKKyAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRv
d25sb2FkVGFzayYpOworICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2smKTsKIAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nl
c3NJZGVudGlmaWVyKCkgY29uc3Q7CisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKQEAgLTEwMyw2ICsxMDgsNyBAQCBwcml2YXRlOgog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgV2Vh
a1B0cjxXZWJDb3JlOjpTV1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2lu
Z0ZldGNoZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8
U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29s
IG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBt
X3dlYlBhZ2VQcm94eUlEOwogICAgIHNpemVfdCBtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQg
eyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDBhNWExNzQ3ZmYxMTA2MjA4
MGM0OTA2MTFhZGNmNjM5NWVlZjk4ZWQuLmJiYjNlYzI1Mjg3NjBmM2U1ODg1MTMzNWI1ZWMzNzAy
ZDJiYmZkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8cGFsL2NyeXB0by9Dcnlw
dG9EaWdlc3QuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KKyNpbmNsdWRlIDx3dGYvcGVyc2lz
dGVuY2UvUGVyc2lzdGVudENvZGVycy5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJz
aXN0ZW50RGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5j
b2Rlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKaW5kZXggYjZkNDBhZDllOTU0
N2JkNDBkZTg1YzljODVhMzVjMWUyNWNkZjE5MS4uNGYxYWM4M2NiM2EyMjZlY2NkMDc4Mzk4Mzc5
MjNjYmM0NGJhYjkyMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRl
LXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
dW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3ICsxNCw3IEBAIGlmIFsgLXogIiR7QlVJTERfU0NS
SVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkKIGZpCiAKLVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291
bnQ9MTExCitVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExMgogVW5pZmllZFNvdXJjZU1tRmls
ZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDkzMGNmOTE3YmE3OTBlNTc1ZDg0Yjk2OWVhYzA1ODFm
NTJmNTE2ZS4uOGE0NzQ5Y2Q0NGJkZDQ5ZThjNmU5MjY0MGFhNDdjYzE3MTdiZTczMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0xMTI1LDcgKzExMjUsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuaWdub3JlSW52YWxp
ZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAg
ICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVO
QUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2Fn
ZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNz
YWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5k
KCd9XG4nKQogICAgIGVsaWYgYXN5bmNfbWVzc2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0
ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVURSkgb3IgcmVjZWl2ZXIuaGFzX2F0dHJp
YnV0ZShXQU5UU19BU1lOQ19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVURSk6CiAgICAgICAgIHJl
Y2VpdmVfdmFyaWFudCA9IHJlY2VpdmVyLm5hbWUgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShM
RUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFKSBlbHNlICcnCkBAIC0xMTQ4LDcgKzExNDgsNyBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rp
bmcoKSlcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicp
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSlcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNj
cmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9X
SVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNj
cmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogCiAgICAgaWYgbm90IHJlY2VpdmVy
Lmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FUVFJJQlVURSkgYW5kIChzeW5jX21lc3NhZ2VzIG9yIHJl
Y2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUpKToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhD
VlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRl
eCA1NjQ5NmRkYmE1ZWE0NDI0ZDQyZTFmY2Y1YzI1NjMzOGVkMjg0ZTJmLi4zODQxZmFmMzE3NTYx
Y2MyY2IzYTQyODVhZjM2NTNmZjRjMjI3YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4
ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgVGVzdFdp
dGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JU
ZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNz
YWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwg
ZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01F
U1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAK
IGJvb2wgVGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJ
UEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNz
YWdlUmVjZWl2ZXIuY3BwCmluZGV4IGNhYjU1OWY2ZTU3Yzg1N2I5MzQzNzVlYWJlNTlhN2JiNDlh
ZWFiNDQuLmFhYzZiYjM1YzhlMThiOTc2YmExNjg4NTFhZjRmZjUyMzljYTU5NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VN
ZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IHZvaWQgVGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxp
ZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBD
OjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VE
YXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBhOWIwNzg5YzU5YWE5YTRlNWJiYjIxNTlhNWQx
ZWMwM2U1ODY3MjVjLi4yNDU0YjNkYWU2OGQwZDQ0ZTA3NTM3ZmEzZWI4MjUzMDZlN2E0ODRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1h
Z2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDYsNyAr
NDYsNyBAQCB2b2lkIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9y
ZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8g
RU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29k
ZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1
NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBkMWFjNjJiN2E2
NTJjZjVjYzNhYjE5OGRmNjgwOGI3ZDhmNGY3MjJkLi5jODlmNDc3ODkxNmE5NDU5YjdlOGVhN2Qx
Mzg1MDFkMGM4NWU5NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1l
c3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OmRpZFJlY2VpdmVUZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZShJUEM6OkNv
bm5lYwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygp
KQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0
byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJV
bmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jVGVzdFdpdGhMZWdhY3lSZWNlaXZl
ck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDE5OWYzYzMxZjVjMDRkYzliOGY3
YTc4YzIzNTI1NTExMTRjODM0NDEuLjUzNjM4MjM4YzNhMzZjNDQ0YzQ5ZjkyZWJjZGMxYTA2OWMz
OWY2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCkBA
IC00Myw3ICs0Myw3IEBAIHZvaWQgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rp
b24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNl
bmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9X
SVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1C
dWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggY2RjMWVm
MTYxMGRmY2ZkYTNiZTI3ODdlYzgzMzM5ODM2ODU4YTMwYy4uMThhZGQ4YTZmYjYwN2I3NjhhMzcw
Mzk4NjMzMDUwNGMyNzg2MmZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1l
c3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1
ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkQKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8g
JSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5o
YW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4
IGRkMmI2MWJjMzQxMThjYzZiYjA1YzY4NzRhYjAyODIxYjhmMWI5ZTEuLjY3ODU0ZjgwOWZlNmYy
YzI1NDIyYzgyMjA1NDNhMThjMGZlMGI2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW06OmRpZFJl
Y2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmIGNvCiAg
ICAgaWYgKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQ
SSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFt
IG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJ
VEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBD
OjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91
dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGMyOGU1ZThlODhjNzBkMjA5NWEx
M2MxODI1MGM1YzNhYzg0MTc5NjIuLjE5YWU5YjBjMmQ0YTI4M2EyNGI1Y2FlODNmZDI4ODAxMTEw
OTA2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZl
ci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogICAgIGlm
IChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRob3V0QXR0
cmlidXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDVhODViMDE5NjA0MjAxNmFiNjg1ZjIwZDRiZWY3M2M0
NjI2NTYwNy4uN2VmMTJiYmJjZjc1ODc1MjU5NGUzNTMwMDEzY2I4MGY3OWQyOWM5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC0xMzMsNyArMTMzLDggQEAgTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAogTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVt
b25DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKIAotTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKK05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKK05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIu
Y3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRl
TG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3Jl
LmNwcCBAbm8tdW5pZnkKQEAgLTg3NCw1ICs4NzUsNiBAQCBSZW1vdGVTaGFkZXJNb2R1bGVNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3Rl
VGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZVJlY2VpdmVy
LmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogV2Vi
TG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9V
bmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA1MDg5OGU0NjMwMTczMTk0YWU0
ZWY3Y2NlNDNhZThlYjQ2NzNhODZiLi4yYWQ3OTY0NWQ2ZWY2ODNkYWQ0ZWIwNzZmNWRkNzI0NzJi
Zjg2MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTE3LDYgKzE3LDcgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1tLm0KICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTExLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5t
bQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTEyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMTQx
OWM1ZGFiM2Q5NzgyMmEwOWUyNDBiNjVhYjlkN2NhYzg3ZDdkLi5lNDVhNDJhYThhMDVjNzBlYmYy
OGZmMGFmYTk4YWM0OWU5MzNkN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5NSw2ICszOTUsNyBAQAogCQkxQ0E4Qjk0NjEyN0M4
ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZD
MkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTFDQUVDQjY1Mjc0
NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTA5LmNwcCAqLzsgfTsKIAkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEu
Y3BwICovOyB9OworCQkyQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEx
Mi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0FF
Q0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgKi87IH07CiAJCTFD
QUVDQjY3Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA4LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVGMjc0NjVBRTMwMEFC
NzhEMCAvKiBVbmlmaWVkU291cmNlMTA4LmNwcCAqLzsgfTsKIAkJMUNBRUNCNjgyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTAuY3BwICovOyB9OwogCQkxQ0FFQ0I2OTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTEwNC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi87
IH07CkBAIC04ODEsNyArODgyLDYgQEAKIAkJNDFEQzQ1OTYxRTNENkUyMjAwQjExRjUxIC8qIE5l
dHdvcmtSVENQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5o
ICovOyB9OwogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURD
NDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi87IH07CiAJ
CTQxREQ3MkFCMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERDcyQUEyNjgyMTY3MzAwQTkwQzcxIC8qIE5X
U1BJLmggKi87IH07Ci0JCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cCAqLzsgfTsKIAkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1
QUMyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9OwogCQk0MUUy
NDJFMDI2RTBDOTA4MDA5QThDNjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29hLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMjQyREYyNkUwQzkw
NDAwOUE4QzY0IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSAqLzsgfTsKIAkJNDFGMDYw
RTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMDYwREQx
NjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwpAQCAtMzE4Niw2ICszMTg2LDcgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdC9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMDkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOS5jcHA7
IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTA5LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVD
QjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UxMTEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktp
dC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQkyQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTExMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEyLmNwcDsg
cGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMTIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNC
NUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVW5pZmllZFNvdXJjZTEwOC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBw
YXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExMC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I2
MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMTA0LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDQuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQxNTgsNiArNDE1OSw5IEBACiAJCTQxRkNENkJEMjNDRTA0
M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUZDRDZCRjIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFC
QkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZE
MkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRN
ZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQx
MjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRBMkQ4QUQwMDYxRjM5MCAvKiBQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODIwMiw2ICs4MjA2LDcgQEAKIAkJCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTEwOS5jcHAgKi8sCiAJCQkJMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTAuY3BwICovLAogCQkJCTFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTExLmNwcCAqLywKKwkJCQkyQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMi5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1bmlmaWVkLXNv
dXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2Vz
IjsKQEAgLTEwMzUxLDYgKzEwMzU2LDkgQEAKIAkJOTNCQTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8q
IFNlcnZpY2VXb3JrZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLmNwcCAqLywKKwkJCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5oICovLAorCQkJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNTE4NTM2MjIyNzA0
RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKIAkJCQk0MTUxODUz
NTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAogCQkJCTQx
NTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2Vz
LmluICovLApAQCAtMTUyNDIsNyArMTUyNTAsNiBAQAogCQkJCUE1NUJBODI2MUJBMjVDRkQwMDdD
RDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMThFNjkxNzE2
OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4NzIxMkI2QUIxMDBGNDkz
RkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQzE4RkVCRjMz
N0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJDb3B5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEQzE4MTI0NUI1NDkzNDNCQzk4MTY0QyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTU0NTMsNiArMTU0NjAsNyBAQAogCQkJCTFDQUVDQjY1Mjc0
NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEx
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTEyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzOEExRkMwMjNBNTUxQkYwMEQy
Mzc0RiAvKiBVc2VySW50ZXJmYWNlSWRpb20ubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIw
RDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggMGI4NGJiZDM2OGZl
YzlkNGRhOTY3YmZlMzE0MDYwYzgwMjNiYjRkZC4uODMyMDgyMDZjNjRhNjYyYTI3OTg3M2Y5YzY2
ZDk0MjJjNmFkNjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MzkxLDYgKzM5MSwxMiBAQCBib29sIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppc1Ro
cm90dGxlYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faXNUaHJvdHRsZWFibGU7CiB9CiAKK3Zv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQo
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS0+Y29udmVydEZldGNoVG9Eb3dubG9hZChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogewogICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6RGlk
RmFpbEhlYXJ0QmVhdENoZWNrIHsgc2VydmljZVdvcmtlcklkZW50aWZpZXIgfSwgMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBlN2RmN2Q5NDFhY2U5MDY0MTRlY2ZmZjUw
YzRiYTQ3OWQxNDY0ZGQ1Li4wNTgwZDk4MzIyOGE3MmJiOGM5OTQ5Y2EyYjFiNGM3MTE4ZmFjNjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTEwNiw2ICsxMDYsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAg
dm9pZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0bGVh
YmxlKTsKKyAgICB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBjYW5jZWxGZXRjaERvd25sb2FkKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIp
OwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
czsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBtX3JlZ2lzdHJhYmxlRG9tYWluOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA1
MjhiZWNhNGVhNGNiNTc1ODZjNWY4NjgxZmRhYWFiMmUzNzExZDJjLi5kNTQxYjgwMzE5MmI4ZDU0
ZDE4MjE3ZmIxMTI1NmRmMDA2OTUzMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNDMsNiArNDMsOCBAQCBtZXNzYWdlcyAtPiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBVcGRhdGVQcmVm
ZXJlbmNlc1N0b3JlKHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCiAg
ICAgQ2xvc2UoKQogICAgIFNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSkKKwor
ICAgIENvbnZlcnRGZXRjaFRvRG93bmxvYWQoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5jcHAKaW5kZXggZmVlOGZlYTdiY2M4ZDU5YzA3ZTNjNWJhNGQ2MDk1NTJhNGQ2Mjhi
Zi4uYzdkZTQxNjY5MTczYzQ1ODdlMzkxYjIyNjc1ZGJjY2FiZmVhYTI4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1
ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTg0LDcgKzg1
LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURh
dGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZm
ZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQp
CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25s
b2FkVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0
X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZm
ZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9y
bURhdGE+JiYgZm9ybURhdGEpCkBAIC0xMDcsNyArMTExLDEwIEBAIHZvaWQgV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3Jt
RGF0YT4mCiAgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBjYXNlIG9mIGJsb2JzLCB3ZSByZWFk
IGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2ggSVBDLgogICAgIFVSTCBibG9iVVJM
ID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOwogICAgIGlmIChibG9iVVJMLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUo
Zm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgICAgICBpZiAobV9pc0Rvd25s
b2FkKQorICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xMzUsNyArMTQyLDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCB1aW50OF90KiBkYXRh
LCBzCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2
ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9m
ZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkUmVjZWl2
ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9m
ZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwg
c2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoQmxv
YkxvYWRpbmcoKQpAQCAtMTU3LDcgKzE2NywxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7
CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRj
aElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElk
ZW50aWZpZXIpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtMTc0LDcgKzE4NywxMCBAQCB2b2lk
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCgpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBp
ZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVy
KTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogCiAg
ICAgY2xlYW51cCgpOwogfQpAQCAtMTk0LDYgKzIxMCwxMiBAQCB2b2lkIFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ6OmNhbmNlbCgpCiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsK
IH0KIAordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb252ZXJ0RmV0Y2hU
b0Rvd25sb2FkKCkKK3sKKyAgICBtX2lzRG93bmxvYWQgPSB0cnVlOworICAgIGNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7Cit9CisKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQogewogICAgIFJFTEVBU0VfTE9HKFNl
cnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlLCBoYXMgY29ubmVjdGlvbiAlZCwgZGlkRmluaXNoICVkLCByZXNwb25z
ZSB0eXBlICVsZCIsICEhbV9jb25uZWN0aW9uLCBtX2RpZEZpbmlzaCwgc3RhdGljX2Nhc3Q8bG9u
Zz4obV9yZXNwb25zZURhdGEuaW5kZXgoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5oCmluZGV4IGIzNDdjYWQyYWI1ZjU3MWIxYTBlMjA3MjA4MDQzNjdkNzcwMTg2MDAuLjAx
ZjYxMGJkNDMzYTJlOWFmYzlhMWZkZDU0YjA4NDMwYjk4MzdkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZE5vdEhhbmRsZSgpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CiAgICAgdm9p
ZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIGZpbmFsOworICAgIHZvaWQgY29udmVydEZl
dGNoVG9Eb3dubG9hZCgpIGZpbmFsOwogCiAgICAgdm9pZCBjbGVhbnVwKCk7CiAgICAgCkBAIC04
NCw2ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZU1lc3NhZ2UgeyBmYWxzZSB9OwogICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51
bGxwdHJfdCwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFJlZjxXZWJDb3JlOjpGb3JtRGF0
YT4sIFVuaXF1ZVJlZjxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPj4gbV9yZXNwb25zZURhdGE7CiAg
ICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRG93bmxvYWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzk0OGFmMTk4N2JmZTVhN2MyZjc0MWJi
YTYwYzM5ZWEwMjVjZGU4MS4uOTE0MzdhMGY1ZTg5NzE0MjdjMmRjZjc2YTI2NDdlNTYzYTBjNGRj
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHRlc3QgcnVubmVyIEFQSSB0byBsb2cgdGhlIHRvdGFsIGRvd25sb2Fk
IHNpemUuCisgICAgICAgIFRoaXMgaGVscHMgZW5zdXJpbmcgdGhhdCBzZXJ2aWNlIHdvcmtlciBs
b2FkcyBhcmUgY29ycmVjdGx5IGRvd25sb2FkZWQgYW5kIGRvIG5vdCByZWx5IG9uIG5ldHdvcmtp
bmcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorCiAyMDIxLTEy
LTA1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWRkIHRoZSBlbmNvZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJF
ZmZlY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDdjZWEwNjc2ZDI3YjcyNzAxNTAy
OTU5ZDE3ZTBjYjVjN2NlMGVjNmIuLjVmODUyOTkyMDYzNzMxZTBjMjEyOGIyMGJiZWY2ZmI3NzBk
ZWNiOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzksNiArMzksNyBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gRG93bmxvYWRzLgogICAgIHVuZGVmaW5lZCB3YWl0
VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CiAgICAgdW5kZWZpbmVkIHNldFNob3VsZExvZ0Rvd25s
b2FkQ2FsbGJhY2tzKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRTaG91bGRMb2dE
b3dubG9hZFNpemUoYm9vbGVhbiB2YWx1ZSk7CiAKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBS
RU5ERVJfVFJFRV9TSE9XX0FMTF9MQVlFUlMgICAgICAgICAgICA9IDE7CiAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgUkVOREVSX1RSRUVfU0hPV19MQVlFUl9ORVNUSU5HICAgICAgICAgPSAyOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggZTFmY2UyY2E1MWYxYjAyZDljNDM3YjA5OWVmNzE4MzY2MTU5MGNjMi4uYTMy
ODBkZjE2Y2Q0NGY2ZDA5ODAwOGU2MTkyYTRjMTEzMDRhZTIyYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMDA4
LDYgKzEwMDgsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRMb2dEb3dubG9hZENhbGxi
YWNrcyhib29sIHZhbHVlKQogICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxkTG9nRG93bmxv
YWRDYWxsYmFja3MiLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkTG9n
RG93bmxvYWRTaXplKGJvb2wgdmFsdWUpCit7CisgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRTaG91
bGRMb2dEb3dubG9hZFNpemUiLCB2YWx1ZSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXV0
aGVudGljYXRpb25Vc2VybmFtZShKU1N0cmluZ1JlZiB1c2VybmFtZSkKIHsKICAgICBwb3N0UGFn
ZU1lc3NhZ2UoIlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiLCB0b1dLKHVzZXJuYW1lKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CmluZGV4IDMxZjEwNmY5OTNiOGI2NzU3YTk2OTIyZDZiMGNkNGM0YzQ0NjgxYWQuLjVjNmE5NmNh
ZTAxZjU5MjU1NDViOGYwNjBlYWZkZjJkNmJlMWJmMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yMTUsNiArMjE1LDcg
QEAgcHVibGljOgogICAgIC8vIERvd25sb2FkcwogICAgIGJvb2wgc2hvdWxkRmluaXNoQWZ0ZXJE
b3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRmluaXNoQWZ0ZXJEb3dubG9hZDsgfQog
ICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCk7CisgICAgdm9pZCBz
ZXRTaG91bGRMb2dEb3dubG9hZFNpemUoYm9vbCk7CiAKICAgICBib29sIHNob3VsZEFsbG93RWRp
dGluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQWxsb3dFZGl0aW5nOyB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZWQyODAyZmIxZTc2NmRjNWRl
NjdjNDRkMTU3NjYxNjMyYzM5MzFhMy4uOTk2MWE2M2I5YWVlOGQwZGViMjZmYmFlMjk3MTY3MDQ2
MWNlYjVhNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuYXZpZ2F0aW9uRGlkQmVjb21l
RG93bmxvYWRTaGFyZWQoV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgYwogICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTCwKICAgICAgICAg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWUsCi0gICAgICAgIG51bGxwdHIsIC8vIGRpZFdyaXRlRGF0YQorICAgICAgICBUZXN0
Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEsCiAgICAgICAgIFRlc3RDb250cm9sbGVy
Ojpkb3dubG9hZERpZEZpbmlzaCwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlk
RmFpbAogICAgIH07CkBAIC0xMTA4LDYgKzExMDgsOCBAQCBib29sIFRlc3RDb250cm9sbGVyOjpy
ZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBS
ZQogICAgICAgICBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKCk7CiAgICAg
fQogCisgICAgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuID0gLTE7CisKICAgICByZXR1cm4g
bV9kb25lUmVzZXR0aW5nOwogfQogCkBAIC0yMjM3LDYgKzIyMzksOCBAQCBXS1N0cmluZ1JlZiBU
ZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tE
b3dubG9hZFJlZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlzaChXS0Rv
d25sb2FkUmVmKQogeworICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSkKKyAgICAgICAg
bV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJEb3dubG9hZCBzaXpl
OiAiLCBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4sICIuXG4iKSk7CiAgICAgaWYgKG1fc2hv
dWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91
dHB1dFRleHQoIkRvd25sb2FkIGNvbXBsZXRlZC5cbiIpOwogICAgIG1fY3VycmVudEludm9jYXRp
b24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwpAQCAtMjI2OSw2ICsyMjczLDE4IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdL
RG93bmxvYWRSZWYsIFdLCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShudWxscHRyLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbikK
K3sKKyAgICBpZiAoIW1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB0b3RhbEJ5dGVzV3JpdHRlbjsK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEoV0tEb3dubG9h
ZFJlZiBkb3dubG9hZCwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0
ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZG93bmxvYWREaWRXcml0ZURhdGEodG90YWxCeXRl
c1dyaXR0ZW4pOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVybWlu
YXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2hlbiBjcmFzaCBsb2dzIGFyZSBi
ZWluZyBzYXZlZCBvbiBXaW5kb3dzLCBzbwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IDVjZDQ5ZmFmMzBkZTc4Y2NlYWNkNWFkMDNjODQ4NmRjNWZjOTFjMTAuLjMw
MmM1ZDZlNWRhZWY0NWZiMjFmOWZmZTkxMjQyNDVlNTdlY2ZmNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKGJvb2wgc2hvdWxkTG9nKSB7
IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyA9IHNob3VsZExvZzsgfQogICAgIHZv
aWQgc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29s
IHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJh
Y2tzKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MgPSBzaG91
bGRMb2c7IH0KKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHNob3VsZExv
ZykgeyBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSA9IHNob3VsZExvZzsgfQogCiAgICAgYm9vbCBp
c0N1cnJlbnRJbnZvY2F0aW9uKFRlc3RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uKSBjb25zdCB7IHJl
dHVybiBpbnZvY2F0aW9uID09IG1fY3VycmVudEludm9jYXRpb24uZ2V0KCk7IH0KIApAQCAtNDcz
LDcgKzQ3NCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGRvd25sb2FkRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25zZVJlZiwgV0tV
UkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgYm9vbCBkb3dubG9hZERpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdLVVJMUmVxdWVzdFJlZik7CiAgICAg
c3RhdGljIHZvaWQgZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV0tE
b3dubG9hZFJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7Ci0gICAgCisKKyAgICB2b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9u
ZyB0b3RhbEJ5dGVzV3JpdHRlbik7CisgICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRXcml0ZURh
dGEoV0tEb3dubG9hZFJlZiwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFs
Qnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CisKICAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzRGlkVGVybWlu
YXRlKFdLUGFnZVJlZiwgIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKICAgICB2b2lkIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24pOwogCkBAIC02NjMsNiArNjY3LDkgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFsc2UgfTsKIAogICAg
IGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0cnVlIH07CisKKyAg
ICBsb25nIGxvbmcgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuIHsgLTEgfTsKKyAgICBib29s
IG1fc2hvdWxkTG9nRG93bmxvYWRTaXplIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAzZGZh
YzVmYzAwOWU0OTY1NDQ0ZTZiNDA5MWRiZWViMmUyMjFkMmJiLi43MmZhODJiYmMwMTAyOTZmMDRk
MTMwZWM5YmM2YTQzNTdjYmQwZTkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtNTM3LDYgKzUzNywxMSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJTZXRTaG91bGRMb2dEb3dubG9hZFNpemUiKSkgeworICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJv
b2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRBdXRoZW50
aWNhdGlvblVzZXJuYW1lIikpIHsKICAgICAgICAgV0tTdHJpbmdSZWYgdXNlcm5hbWUgPSBzdHJp
bmdWYWx1ZShtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKHRvV1RGU3RyaW5nKHVzZXJuYW1lKSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggODU5ZWRjODZjYjY4MjE4OWU5MjMxMjMwZDA0NjM5MTJhODViNGZiNS4uNDQ0YzVlZGU3NTdl
ZTU0ZjY4N2I4NjE5MzI4MGI2NTFhMzBmMmM2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTEyLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXgg
U2VydmljZVdvcmtlciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQt
d29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWRvd25sb2FkLmh0dHBzLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQu
aHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIu
anM6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1z
ZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weToKKwogMjAyMS0xMi0wNCAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1MgYW5pbWF0aW9uIHNvcnRp
bmcgbWF5IGNyYXNoIGR1ZSB0byBBbmltYXRpb25MaXN0IGNvcHkgdXBvbiBDU1MgQW5pbWF0aW9u
IHJlbW92YWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXIt
ZG93bmxvYWQtd29ya2VyLmpzCmluZGV4IGQ1YzY2MzBiYjUxMWY1ZjdhYjI4ZWRkMjFiNDBhYThm
YzMzNDZlZjcuLjYwMDI5MjM5ZDM3ZTBjMmVmZWEyMWMyNTVkZWYyZmFmZjdiZmI4M2EgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdv
cmtlci5qcwpAQCAtMSwzICsxLDIxIEBACiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwg
KGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJkb3dubG9h
ZC1ib2R5IikpIHsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoImEgZG93
bmxvYWQgYm9keSIsIHsiaGVhZGVycyIgOiBbWyJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24v
YmluYXJ5Il1dfSk7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMoImRv
d25sb2FkLXN0cmVhbSIpKSB7CisgICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0
cmVhbSh7CisgICAgICAgICAgICBzdGFydDogKGNvbnRyb2xsZXIpID0+IHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7CisgICAgICAgICAgICAgICAg
Y29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCJhIGZpcnN0IGNodW5rLCAiKSk7Cisg
ICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNv
ZGVyLmVuY29kZSgidGhlbiBhIHNlY29uZCBjaHVuayIpKTsgfSwgMTAwKTsKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udHJvbGxlci5jbG9zZSgpOyB9LCAyMDApOworICAg
ICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVz
cG9uc2Uoc3RyZWFtLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9u
L2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVx
dWVzdC51cmwpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmViYzJiODZl
NjZiYjM5YzliYzA5ZDNkYTkzZjQwMzI0MzFiY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQt
Ym9keS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVk
LgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJkb3dubG9hZC1ib2R5
IgorRG93bmxvYWQgc2l6ZTogMTUuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLWJvZHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YWQyZDQ4MGE5MWRhYWMxYzZkNGQwZWVjODllY2MyODdmNGJhOWM4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENh
bGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1
ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVu
bmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZyYW1lKCJy
ZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzLyIpOworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9kb3dubG9hZC1ib2R5IjsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWExOWVi
ZTM3YTMxNGIzZjU4NjI0OGE3NjY3ZmE1MGMwZjM5ZmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxv
YWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0
YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25sb2Fk
LXN0cmVhbSIKK0Rvd25sb2FkIHNpemU6IDM0LgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdv
cmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE1NzczZmU0Njk2NDA2NDMzMDNiZTAzZmE3NDBkYzhjMWNiYTgwOGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbApAQCAtMCwwICsxLDIzIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxk
TG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93
bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmluaXNoZWQo
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMo
dHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdhaXQgaW50ZXJj
ZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcyIs
ICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9jYXRpb24gPSAi
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtc3RyZWFtIjsKK30KK2RvVGVzdCgp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZDA4ZWY4NDZkMzJm
NmVjOTFkOTQyNzNjOWMyNGUwZjBmMmNhNjIwMi4uOWUzMzNkNTY5MWU5OWJiZTVkZTMzMmI1Y2Fm
YjFlNGZkZWNhMzcyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIERvd25sb2FkIHN0YXJ0
ZWQuCiBEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25sb2FkLWJp
bmFyeS5weSIKK0Rvd25sb2FkIHNpemU6IDkuCiBEb3dubG9hZCBjb21wbGV0ZWQuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCmluZGV4IDhjOWFkYTNm
YzgxMmMzNjA5N2IzZDAzOTQxNjQwOTM1Y2IyMmU3NDYuLjRhNWFhODdiNGVjMGQzZDczYzk3MTYx
ZTA2MmZjN2RjNjhhMTdiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxv
YWQuaHR0cHMuaHRtbApAQCAtNyw2ICs3LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3du
bG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNp
emUodHJ1ZSk7CiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOwogICB0
ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJl
bG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVjZjZl
MGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
LXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxl
bmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkiCitEb3dubG9hZCBz
aXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93
bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxv
YWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYThjN2Jl
NGVhNjk4MDUwOGFmZmU3MTA1Y2Q0ZjBlMjljYmU0MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSw2NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9j
b21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3V0aW5l
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxk
TG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmlu
aXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXModHJ1ZSk7Cit9CisKK3ZhciBhY3RpdmVXb3JrZXI7Cit2YXIgdXVpZCA9IHRva2VuKCk7
Cit2YXIgdXJsID0gIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weT9kb3dubG9hZD15ZXMmbm8tZmV0Y2gtZXZlbnQt
aGFuZGxpbmc9eWVzJnRva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9
IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkK
K3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwu
cG9ydDIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YSA9PT0gImFjdGl2YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFj
dGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
ZG9UZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3
YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBs
ZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
Ii9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29y
a2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nKSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lz
dHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIs
IHsgc2NvcGUgOiB1cmwgfSk7CisgICAgfQorCisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDogY2hh
bm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGlsQWN0
aXZhdGluZygpOworCisgICAgZmV0Y2godXJsICsgIiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsgbWV0
aG9kOiAnUE9TVCcgfSk7CisKKyAgICAvLyBMb2FkIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdv
cmtlciwgc28gcHJlbG9hZCB3aWxsIHN0YXJ0IGFuZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUgZG93
bmxvYWRlZCwgZGlyZWN0bHkgdGhyb3VnaCBwcmVsb2FkIHNpbmNlIHNlcnZpY2Ugd29ya2VyIGRp
ZCBub3QgaGFuZGxlIHRoZSBldmVudC4KKyAgICAvLyBEb3dubG9hZCBzaXplIHNob3VsZCBiZSBz
aXplIG9mICJ1c2UtcHJlbG9hZCIuCisgICAgY29uc3QgcHJvbWlzZSA9IHdpdGhJZnJhbWUodXJs
KTsKKworICAgIHRyaWdnZXJBY3RpdmF0aW9uKCk7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNl
cnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI3OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZp
bGVuYW1lICJmZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSIKK0Rvd25sb2Fk
IHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1k
b3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NWZmZGZlYzQyYmMzMjEyMDcwMzJjOTFmODQ0ODdiMjA0YmU1MTZmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGls
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dE
b3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9h
ZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOwor
ICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVl
KTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwg
PSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2Vy
LXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2FkPXllcyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFt
ZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2Fp
dFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
eworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAg
ICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3Rp
dmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsg
fSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIH0KKworICAgIGFjdGl2
ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0
TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEgfSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAg
IGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmcoKTsKKworICAgIGZldGNoKHVybCArICImdmFsdWU9
dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BPU1QnIH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUs
IHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIHByZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBi
ZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQsIHRocm91Z2ggdGhlIHNlcnZpY2Ugd29ya2VyLgor
ICAgIC8vIERvd25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAg
ICBjb25zdCBwcm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRp
b24oKTsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMKaW5kZXggZDA0YTQ5
YTc4Y2Q4OTI5YTRmZDBkYjRhYjBjZWI4MDFhMDE5NTBlOC4uNjg1MGUwMWRhOWYxYjY2ZmNjZGYz
YThmMTc4OTYxMTc0M2I4MWJiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMjMsNSArMjMsNyBAQCBvbmFjdGl2YXRlID0gKGV2ZW50
KSA9PiB7CiB9CiAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsK
KyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMoIm5vLWZldGNoLWV2ZW50LWhhbmRs
aW5nIikpCisgICAgICAgIHJldHVybjsKICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVu
dC5yZXF1ZXN0KSk7CiB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CmluZGV4IDIwNjc4MzZmNTQxNzAzZGU4
NGYwOGI4ZWIzZTZjYzhjMzM4MTM5ZmUuLjlhOWFmY2RiNDY1M2ZmNjdlNWQzZGM2NTViZjhiOTk0
ZWVjNzc5MDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weQpAQCAtMzEsNSArMzEsMTAgQEAgZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGlmIG5vdCB2YWx1ZToKICAgICAgICAgdmFsdWUgPSBi
Im5vdGhpbmciCiAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJu
by1jYWNoZSIpCisKKyAgICBpZiBiImRvd25sb2FkIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL2JpbmFy
eSIpCisgICAgICAgIHJldHVybiB2YWx1ZS5kZWNvZGUoKQorCiAgICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCiAgICAgcmV0dXJuICI8aHRtbD48
Ym9keT48c2NyaXB0PndpbmRvdy52YWx1ZSA9ICclcyc7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4i
ICUgdmFsdWUuZGVjb2RlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446142</attachid>
            <date>2021-12-07 02:22:54 -0800</date>
            <delta_ts>2021-12-07 03:06:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211207112252.patch</filename>
            <type>text/plain</type>
            <size>97970</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uMTMwNDRiYzFiNDFmNzlkYzYzMTBkODU2OTk4MWI0
MjUxYzBhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFVzZSBlbmQgYml0
cyBpbiB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MTc5NDc1ZjdkZmQwOGYxNDhkMDI1
ODdlNDBjZmQ1OWIwMWFhOGRhLi4wMjJhMWEzYjE5OTUxMGRiMjdhMjc3ZWYxOWU3OGZjYTUzNWQz
NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTEyLTA2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgY2xhc3MgYXMgYSBOZXR3b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9h
ZCB0aGUgY29udGVudCBvZiBhIHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIEFkZCBhIHdheSB0byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBk
b3dubG9hZHM6CisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1
c2VkIGZvciBuYXZpZ2F0aW9uLCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3
b3JrTG9hZC4KKyAgICAgICAgLSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBh
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9h
ZCB0byBzdGFydCBkb3dubG9hZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4K
KyAgICAgICAgV2hlbiBjcmVhdGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQg
c2VuZGluZyByZXNwb25zZSBkYXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAg
ICAgICAgaW5zdGVhZCBvZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFs
bG93cyBjYW5jZWxsaW5nIHRoZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlz
c3VlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMg
bm90IGF1Z21lbnRlZDogaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRz
IGNsaWVudHMgYmVpbmcgY2xvc2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAg
IEluY3JlYXNlIHVuaWZpZWQgYnVpbGQgZmlsZXMgdG8gMTEyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBTY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENW
UGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0
aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpkaWRSZWNlaXZlVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRoU3RyZWFtQnVm
ZmVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0
V2l0aFN0cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
Ojpkb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3du
bG9hZFByb3h5KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aDoKKwogMjAyMS0xMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRl
ciBhbmQgRmlsdGVyRWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IGViMjY2YjZjMDdl
NjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUyMzBmOWJkYjk5YTVlODM4N2RmZDk2
MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OCw2ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0
Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAK
aW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0MDI2NWNjMjZkYi4uZGI2YzkzYjhi
ZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBAIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKKwordm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkICVsbHUiLCBmZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRvIGNsaWVudCA9IG1fb25nb2luZ0Zl
dGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW2NsaWVudCA9IFJlZiB7
ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVudC0+Y29udmVydEZldGNoVG9Eb3du
bG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworfQorCiB2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAgIGF1dG8gY2xpZW50ID0gbV9vbmdv
aW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAw
YTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1ZjRhLi4wMWIzYWQwNDkxNWQ0YmUy
N2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
LCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcm
JiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbmNlbEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250
aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVGZXRjaChT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCBiMWRiYmI1NTQ5ZjdhMDUxYmNjYjBkYmUyZjIzOTlhYWJmMWFiOTIxLi4y
NTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwKICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNWJhNjRiNDRiZTFlNTc3NTA4OGZjNmU5MDU1
OTljN2NkNTc4M2NkMy4uNDA0YTcyMmM3NjkwMDAwYTBmMDNiOWE4MDBkZmM1YjdhMWUzMGJkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
ODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDg2ZWZkNmJjOGQ5ZDE5MzcwZWY5ZGY4NWNiNWI5ZGEy
YzM3ZmE5NS4uYjU3Zjk3MDFhNGU5OTU2M2M4ZDNhMGI5ODk1ZTI0MGZlYjA4NzdjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zOTYs
NiArMzk2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA2ODRmYWNkNWQ3NmZjMjRhMjdiMDdhZjQ3MGNjM2Y5YTNjZDFjMDYwLi5iM2I3
MTk3N2I0YTBhZTQxYTJiNmMwZDc1ZDM3MzdmMDkzOWE3MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJTmV0
d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBc
CiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIFwKKwlOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgXAogCU5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAJTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gXAogCU5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFkNzNlNjc0MTcwLi5iODgwYjc2Yjcz
MGVlNDU5YzNmMTlkYzI1ZmVmYTIxYTEwM2U2NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtNjk1LDggKzY5NSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChzdGQ6Om9wdGlvCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgLy8gSW4gY2FzZSBhIHJl
c3BvbnNlIGlzIHNlcnZlZCBmcm9tIHNlcnZpY2Ugd29ya2VyLCB3ZSBkbyBub3QgaGF2ZSB5ZXQg
dGhlIGFiaWxpdHkgdG8gY29udmVydCB0aGUgbG9hZC4KLSAgICBpZiAoIW1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNv
dXJjZTo6U2VydmljZVdvcmtlcikgeworICAgIGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZp
ZXIpIHsKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnRE
b3dubG9hZChtX3Nlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCwgaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IGJhYzAyMmFiNDU0MzBmNjUxYjE4
OWFjMDEyMDdhMDYwNjA4YzE2NzEuLjZkZjE0MTA3MzZhYmEyZjJkOWExOTYxNTZjMGIxYmFmYThl
NzA0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
CkBAIC01Niw2ICs1NiwxMyBAQCBOZXR3b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRD
bGllbnQmIGNsaWVudCwgQmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdAogICAgICAgICBtX3Rh
c2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShuZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIG1fcGFy
YW1ldGVycyk7CiB9CiAKK05ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVu
dCYgY2xpZW50LCBOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IEZ1bmN0aW9u
PFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYgY3JlYXRl
VGFzaykKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0
d29ya1Nlc3Npb24ubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAsIG1fdGFzayhjcmVhdGVUYXNrKCp0
aGlzKSkKK3sKK30KKwogdm9pZCBOZXR3b3JrTG9hZDo6c3RhcnQoKQogewogICAgIGlmICghbV90
YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCmluZGV4IGMz
NzczYzk4Nzg1NTNjZTUzNGQwNTRhYmZmZGRlYmIyOWVlMDg0ZDIuLmI5MmY5YzYxZTEzNTkwYzQx
Y2JjMWQ4YjM4MjhkM2FjY2I3NTFiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWQgZmluYWwg
OiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmLCBXZWJD
b3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIE5ldHdvcmtT
ZXNzaW9uJik7CisgICAgTmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmLCBOZXR3b3JrU2Vz
c2lvbiYsIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRh
VGFza0NsaWVudCYpPiYpOwogICAgIH5OZXR3b3JrTG9hZCgpOwogCiAgICAgdm9pZCBzdGFydCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGU1MGNmNGFiYmU1NjRlNGNhM2ZiNzI2Y2FhOWQ1NjljNTRiMDlk
NzIuLmI4N2FkNGQzYzFjYTAzMTBkYjIzYTc5MjA4OWU1ZDE4N2FjOGY5NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTQ4NCw2ICs0ODQsMTEgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZl
cnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3UKIHsKICAgICBM
T0FERVJfUkVMRUFTRV9MT0coImNvbnZlcnRUb0Rvd25sb2FkOiAoZG93bmxvYWRJRD0lIiBQUkl1
NjQgIiwgaGFzTmV0d29ya0xvYWQ9JWQsIGhhc1Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI9JWQp
IiwgZG93bmxvYWRJRC50b1VJbnQ2NCgpLCAhIW1fbmV0d29ya0xvYWQsICEhbV9yZXNwb25zZUNv
bXBsZXRpb25IYW5kbGVyKTsKIAorI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyAgICBpZiAo
bV9zZXJ2aWNlV29ya2VyRmV0Y2hUYXNrICYmIG1fc2VydmljZVdvcmtlckZldGNoVGFzay0+Y29u
dmVydFRvRG93bmxvYWQobV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFu
YWdlcigpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSByZXNvdXJjZSBjYW1lIGZy
b20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFtX25ldHdvcmtMb2FkKSB7CiAgICAgICAgIG1f
Y29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25s
b2FkKHNlc3Npb25JRCgpLCBkb3dubG9hZElELCByZXF1ZXN0LCBtX3BhcmFtZXRlcnMuaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5MWMzNjIzODNiN2E0NTA1NzUwZWM2MDUwYmNl
MDgxNjU4MzZiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApAQCAtMCwwICsx
LDI0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisK
KyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRl
ICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6U2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvd25sb2FkSUQgZG93bmxvYWRJRCkKKyAg
ICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OjpEb05vdFVzZSwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbihzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAsIG1fc2VydmljZVdv
cmtlcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgLCBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9m
ZXRjaElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKQorICAgICwgbV9kb3dubG9hZElEKGRvd25s
b2FkSUQpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLm5l
dHdvcmtQcm9jZXNzKCkpCisgICAgLCBtX3dyaXRlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2siKSkKK3sKKyAgICBzZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2VydmljZVdvcmtlckRvd25sb2FkVGFz
azo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQoreworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2s6OmNsb3NlKCkKK3sKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbikKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlckRvd25s
b2FkKCp0aGlzKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrOjpzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2UmJiBtZXNzYWdl
KQoreworICAgIHJldHVybiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID8gbV9zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbi0+aXBjQ29ubmVjdGlvbigpLnNlbmQoc3RkOjpmb3J3YXJkPE1lc3NhZ2U+
KG1lc3NhZ2UpLCAwKSA6IGZhbHNlOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAg
IG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSgpIG11dGFibGUgeworICAgICAgICBmdW5jdGlv
bigpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNhbmNl
bCgpCit7CisgICAgbV93cml0ZVF1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dIHsKKyAgICAgICAgaWYgKG1fZG93bmxvYWRGaWxlICE9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06
OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAgICAgICBtX2Rvd25sb2FkRmlsZSA9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIH0KKyAgICAg
ICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKKyAg
ICB9KTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KTsK
KworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworICAgIGNsb3NlKCk7Cit9CisKK3Zv
aWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6cmVzdW1lKCkKK3sKKyAgICBtX3N0YXRlID0g
U3RhdGU6OlJ1bm5pbmc7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6aW52
YWxpZGF0ZUFuZENhbmNlbCgpCit7CisgICAgY2FuY2VsKCk7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgV1RGOjpT
dHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQoreworICAgIGlmICghbmV0d29ya1Nlc3Np
b24oKSkgeworICAgICAgICBtX3dyaXRlUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRpZEZhaWxEb3du
bG9hZCgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5ldHdv
cmtEYXRhVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZmlsZW5hbWUsIHsgfSwgYWxs
b3dPdmVyd3JpdGUpOworCisgICAgQVNTRVJUKCFtX3NhbmRib3hFeHRlbnNpb24pOworICAgIG1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpKTsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKQorICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKKworICAgIG1fd3JpdGVRdWV1ZS0+ZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBhbGxvd092ZXJ3cml0
ZSAsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGZpbGVuYW1l
KSkKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZW5hbWUpOworCisgICAg
ICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wZW5kaW5nRG93bmxv
YWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CisgICAgICAgIGlm
IChtX2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KQorICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3N0YXRlICE9
IFN0YXRlOjpDb21wbGV0ZWQpOworCisgICAgaWYgKCFzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udmVydEZldGNoVG9Eb3dubG9h
ZCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pKSB7CisgICAgICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0
Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSgpIG11dGFibGUgeworICAg
ICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgYXV0byYgbWFu
YWdlciA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpOworICAgIGF1dG8gZG93
bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihtYW5hZ2VyLCBtX2Rvd25sb2FkSUQsICp0aGlz
LCAqbmV0d29ya1Nlc3Npb24oKSk7CisgICAgYXV0byogZG93bmxvYWRQdHIgPSBkb3dubG9hZC5n
ZXQoKTsKKyAgICBtYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKG1fZG93bmxvYWRJ
RCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgIGRvd25sb2FkUHRyLT5kaWRDcmVhdGVEZXN0aW5h
dGlvbihtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5M
b29wKCkpOworICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgYnl0ZXNXcml0
dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9kb3dubG9hZEZpbGUsIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7CisKKyAgICBpZiAoYnl0ZXNXcml0dGVuICE9IGRhdGEuc2l6ZSgpKSB7
CisgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBieXRlc1dyaXR0ZW5dIHsKKyAgICAgICAgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiArPSBieXRl
c1dyaXR0ZW47CisgICAgICAgIGlmIChhdXRvKiBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3Mt
PmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAg
ICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKGJ5dGVzV3JpdHRlbiwgbV9kb3dubG9hZEJ5
dGVzV3JpdHRlbiwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZv
cm1EYXRhKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIEZJWE1F
OiBTdXBwb3J0IHdyaXRpbmcgZm9ybURhdGEgaW4gZG93bmxvYWRzLgorICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNl
aXZlRm9ybURhdGEgbm90IGltcGxlbWVudGVkIik7CisgICAgZGlkRmFpbERvd25sb2FkKCk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBB
U1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9k
b3dubG9hZEZpbGUpOworICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBs
YXRmb3JtRmlsZUhhbmRsZTsKKworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0geworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBs
ZXRlZDsKKyAgICAgICAgY2xvc2UoKTsKKworICAgICAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9u
KSB7CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93
bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlkRmlu
aXNoKCk7CisKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRp
ZENvbXBsZXRlV2l0aEVycm9yKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzazo6ZGlkRmFpbChSZXNvdXJjZUVycm9yJiYgZXJyb3IpCit7CisgICAgQVNT
RVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgZGlkRmFpbERvd25sb2FkKFdURk1vdmUoZXJy
b3IpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGYWlsRG93bmxv
YWQoc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiYmIGVycm9yKQoreworICAgIEFTU0VSVCgh
aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGlmIChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3Nl
RmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICB9CisgICAgRmlsZVN5c3RlbTo6ZGVs
ZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKKworICAgIGNhbGxPbk1haW5SdW5M
b29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgZXJyb3IgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShlcnJvcikpXSB7CisgICAgICAgIGlmIChtX3N0YXRlID09IFN0YXRl
OjpDb21wbGV0ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0ZSA9IFN0
YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIGNsb3NlKCk7CisKKyAgICAgICAgaWYgKG1fc2FuZGJv
eEV4dGVuc2lvbikgeworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsK
KyAgICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvIHJlc291cmNlRXJyb3IgPSBlcnJvci52YWx1ZV9vcihjYW5jZWxsZWRFcnJv
cihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICBpZiAoYXV0byBkb3dubG9hZCA9IG1fbmV0d29y
a1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQp
KQorICAgICAgICAgICAgZG93bmxvYWQtPmRpZEZhaWwocmVzb3VyY2VFcnJvciwgSVBDOjpEYXRh
UmVmZXJlbmNlKCkpOworCisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJvcihyZXNvdXJjZUVycm9yKTsKKyAgICB9KTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Yzg5NzZiYWI4NTE1OTZhNzBlNzcwZjk1ZGVhMmZiNzcwYWEzMTNiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2suaApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEb3dubG9hZC5oIgor
I2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0
d29ya0RhdGFUYXNrLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KKwor
bmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xhc3MgTmV0d29ya1Byb2Nlc3M7Citj
bGFzcyBTYW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOworCitjbGFzcyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIDogcHVibGljIE5ldHdvcmtE
YXRhVGFzaywgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG93
bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJlZigqIG5ldyBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVjdGlvbiwgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJl
cXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKCk7
CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKyAgICB2b2lkIGNvbnRleHRDbG9zZWQoKSB7
IGNhbmNlbCgpOyB9CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpIHsgY2FuY2Vs
KCk7IH0KKworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6cmVmOworICAgIHVzaW5nIE5ldHdv
cmtEYXRhVGFzazo6ZGVyZWY7CisgICAgdXNpbmcgTmV0d29ya0RhdGFUYXNrOjp3ZWFrUHRyRmFj
dG9yeTsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6OldlYWtWYWx1ZVR5cGU7CisKK3ByaXZh
dGU6CisgICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIERvd25sb2FkSUQpOworCisgICAgLy8gSVBDIE1lc3NhZ2UKKyAgICB2b2lk
IGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaCgpOworICAgIHZvaWQgZGlkRmFp
bChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworCisgICAgLy8gTmV0d29ya0RhdGFUYXNrCisg
ICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOworICAgIHZv
aWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIGZpbmFsOworICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkTG9j
YXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYs
IGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBmaW5hbDsKKworICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIHJlZk1lc3NhZ2VSZWNl
aXZlcigpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmTWVzc2FnZVJlY2VpdmVyKCkg
ZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPiBib29s
IHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZSYmKTsKKyAgICB2b2lkIGRpZEZhaWxEb3dubG9h
ZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYgPSB7IH0pOworICAgIHZv
aWQgY2xvc2UoKTsKKworICAgIFdlYWtQdHI8V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
PiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOworICAg
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2ZldGNoSWRlbnRpZmllcjsKKyAgICBEb3dubG9h
ZElEIG1fZG93bmxvYWRJRDsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nl
c3M7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbjsKKyAg
ICBSZWY8V29ya1F1ZXVlPiBtX3dyaXRlUXVldWU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiB7IDAgfTsKKyAg
ICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRlZCB9OworfTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDNiZmI3Y2MzMTA5
Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCittZXNzYWdlcyAt
PiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5vdFJlZkNvdW50ZWQgeworICAgIERpZEZhaWwo
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
KyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAg
IERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKaW5kZXggZDc4N2I1MTBhZDc4MDFi
ODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNDc3ZTg4MjUxYmM5MDkxZGExNGJhMmEyYzMzYjM3
NDNhOWUzMjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJGb3Jt
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
TG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKQEAgLTMwMiw3ICsz
MDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjYW5ub3RIYW5kbGUoKQogCiB2
b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbmNlbEZyb21DbGllbnQoKQogewotICAgIFNX
RkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGllbnQ6Iik7CisgICAgU1dGRVRDSF9SRUxF
QVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDogaXNEb25lPSVkIiwgbV9pc0RvbmUpOworICAgIGlm
IChtX2lzRG9uZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2VuZFRvU2VydmljZVdvcmtlcihN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNhbmNlbEZldGNoIHsgbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9m
ZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKQEAgLTQxNiw2ICs0MjAsMzYgQEAgTmV0d29ya1Nlc3Np
b24qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNlc3Npb24oKQogICAgIHJldHVybiBtX3N3U2Vy
dmVyQ29ubmVjdGlvbiA/IG1fc3dTZXJ2ZXJDb25uZWN0aW9uLT5zZXNzaW9uKCkgOiBudWxscHRy
OwogfQogCitib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnZlcnRUb0Rvd25sb2FkKERv
d25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
eworICAgIGlmIChtX3ByZWxvYWRlciAgJiYgIW1fcHJlbG9hZGVyLT5pc1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG1fcHJlbG9hZGVyLT5j
b252ZXJ0VG9Eb3dubG9hZChtYW5hZ2VyLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSk7
CisKKyAgICBhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lvbigpOworICAgIGlmICghc2Vzc2lv
biB8fCAhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgbV9pc0RvbmUgPSB0cnVlOworCisgICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8g
a2VlcCB0aGUgc2VydmljZSB3b3JrZXIgYWxpdmUgdW50aWwgdGhlIGRvd25sb2FkIGVuZHMuCisg
ICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IHNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2s7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyRG93bmxvYWRMb2FkID0gbWFrZVVuaXF1ZTxO
ZXR3b3JrTG9hZD4obV9sb2FkZXIsICpzZXNzaW9uLCBbJl0oYXV0byYgY2xpZW50KSB7CisgICAg
ICAgIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgPSAgU2VydmljZVdvcmtlckRvd25sb2FkVGFz
azo6Y3JlYXRlKCpzZXNzaW9uLCBjbGllbnQsICptX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLCBt
X3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBt
X2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCk7CisgICAgICAgIHJldHVybiBz
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNvcHlSZWYoKTsKKyAgICB9KTsKKworICAgIFJlc3Bv
bnNlQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXIgPSBbc2VydmljZVdvcmtlckRv
d25sb2FkVGFzayA9IFdURk1vdmUoc2VydmljZVdvcmtlckRvd25sb2FkVGFzayldKGF1dG8gcG9s
aWN5KSB7CisgICAgICAgIGlmIChwb2xpY3kgIT0gUG9saWN5QWN0aW9uOjpEb3dubG9hZCkgewor
ICAgICAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2FkVGFzay0+c3RvcCgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2st
PnN0YXJ0KCk7CisgICAgfTsKKworICAgIG1hbmFnZXIuY29udmVydE5ldHdvcmtMb2FkVG9Eb3du
bG9hZChkb3dubG9hZElELCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEb3dubG9hZExvYWQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgU1dGRVRDSF9S
RUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXggYWJh
OTA1NzJmMDUxZWVkOTBmMmY3YTlkNTM1MDVlMWE0ZjRlOThjMi4uYzM0NTgwMjY3ZmIzMjY5ZTZk
Y2JkY2VmYzM0ZDA2ODJjNmEwODg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oPgpAQCAtNTQsNiArNTUsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3M7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0
d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjsKQEAgLTg1LDYgKzg3LDggQEAgcHVibGljOgogICAg
IHZvaWQgY2Fubm90SGFuZGxlKCk7CiAgICAgdm9pZCBjb250ZXh0Q2xvc2VkKCk7CiAKKyAgICBi
b29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIFNob3VsZFNldFNvdXJjZSA6IGJvb2wg
eyBObywgWWVzIH07CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXggNzFlMGNmNmM2ZGM3YmVhNTIyYzkwNjAw
NTU1ZjU3MjE2MWMzYzJmNC4uMDFjMWUyNTY0YTg2MTIyZWI2NzFlMGY2YTg2OWZhOTg3YmUyNmQy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKQEAgLTI0
Miw2ICsyNDMsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6d2Fp
dEZvckJvZHkoQm9keUNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgbV9ib2R5Q2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAorYm9vbCBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBtYW5hZ2VyLCBEb3dubG9h
ZElEIGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKCFt
X25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtYW5hZ2VyLmNvbnZl
cnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwgc3RkOjpleGNoYW5nZShtX25ldHdv
cmtMb2FkLCBudWxscHRyKSwgV1RGTW92ZShtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpLCB7
IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCmluZGV4IDFl
NzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4ZjFlYjQuLjhhNGYzY2RjNGE0MTYwZTlh
Yjc1Yjc2NTYxZjQyMWVkM2M3ZTVmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNp
bmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKQEAgLTM5LDYgKzQwLDcgQEAgY2xhc3Mg
TmV0d29ya0xvYWRNZXRyaWNzOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgRG93bmxv
YWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya0xvYWQ7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIApA
QCAtNjAsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRN
ZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtMb2Fk
TWV0cmljczsgfQogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbmFibGVkOyB9CiAKKyAgICBib29sIGNvbnZl
cnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwog
cHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4KICAgICB2b2lkIGRpZFNlbmREYXRh
KHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5
dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCA4YjIxMzg1MmQwZjExN2RlZjgxOWQ0NTJkYjdi
OGZjZjQ5ZTM3NTZiLi5mMGE4OTY3NWNjMTQ0MzcwOGEwYjY4YWM5MzFjZTc3ZmQyNWM0MDA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCkBAIC01OSw2ICs2MCwxMCBAQCBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246On5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKQogICAgIGZvciAoYXV0
byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQogICAgICAgICBmZXRjaC0+Y29udGV4dENsb3Nl
ZCgpOwogCisgICAgYXV0byBkb3dubG9hZHMgPSBXVEZNb3ZlKG1fb25nb2luZ0Rvd25sb2Fkcyk7
CisgICAgZm9yIChhdXRvJiBkb3dubG9hZCA6IGRvd25sb2Fkcy52YWx1ZXMoKSkKKyAgICAgICAg
ZG93bmxvYWQtPmNvbnRleHRDbG9zZWQoKTsKKwogICAgIGlmIChtX3NlcnZlciAmJiBtX3NlcnZl
ci0+Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFp
bigpKSA9PSB0aGlzKQogICAgICAgICBtX3NlcnZlci0+cmVtb3ZlQ29udGV4dENvbm5lY3Rpb24o
KnRoaXMpOwogfQpAQCAtMTk3LDYgKzIwMiwxOSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhcwog
ICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpOwogfQog
Cit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cmVnaXN0ZXJEb3dubG9hZChT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAgIEFTU0VSVCghbV9vbmdvaW5n
RG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpKTsKKyAgICBtX29uZ29p
bmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVyKCksIHRhc2spOworICAgIG1fY29u
bmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICZ0YXNrLCB0
YXNrLmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkpOworfQorCit2b2lkIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2smIHRhc2spCit7CisgICAgbV9vbmdvaW5nRG93bmxvYWRzLnJlbW92ZSh0YXNrLmZl
dGNoSWRlbnRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnJlbW92ZVRo
cmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0YXNrLmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkp
OworfQorCiBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246OndlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9j
b25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggNGEwYjE1MzcxZmY5NjcxNTlkZmU2
NjEyNThlNDU1NzZlNzUyMTEwZC4uMzM2NThjNTRjMTRmYTRhNDQ0Yjc0MzZkZDkwYjA4NTlhMjQy
YmI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmg+CkBAIC03NCw4ICs3NSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYpOwogICAgIHZvaWQgdW5yZWdp
c3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smKTsKKyAgICB2b2lkIHJlZ2lzdGVyRG93
bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOworICAgIHZvaWQgdW5yZWdpc3RlckRv
d25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsKIAogICAgIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3Q7CisgICAgTmV0d29ya1By
b2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9j
ZXNzKCk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKQEAgLTEwMyw2
ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBt
X2Nvbm5lY3Rpb247CiAgICAgV2Vha1B0cjxXZWJDb3JlOjpTV1NlcnZlcj4gbV9zZXJ2ZXI7CiAg
ICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtl
ckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRj
aElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4+IG1fb25nb2lu
Z0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiAgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIHNpemVfdCBtX3Byb2Nl
c3NpbmdQdXNoRXZlbnRzQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmlu
ZGV4IDBhNWExNzQ3ZmYxMTA2MjA4MGM0OTA2MTFhZGNmNjM5NWVlZjk4ZWQuLmJiYjNlYzI1Mjg3
NjBmM2U1ODg1MTMzNWI1ZWMzNzAyZDJiYmZkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5j
bHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
KyNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oPgogI2luY2x1ZGUg
PHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9wZXJz
aXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291
cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMu
c2gKaW5kZXggYjZkNDBhZDllOTU0N2JkNDBkZTg1YzljODVhMzVjMWUyNWNkZjE5MS4uMmEzZDZi
NWVlYjI0MTQwMWM4MGVhM2JlZDgyMzgyZDAzNTY1MjM2NCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3ICsxNCw3IEBA
IGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkKIGZpCiAKLVVu
aWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTExCitVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTEx
NQogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhlbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDkzMGNmOTE3YmE3
OTBlNTc1ZDg0Yjk2OWVhYzA1ODFmNTJmNTE2ZS4uOGE0NzQ5Y2Q0NGJkZDQ5ZThjNmU5MjY0MGFh
NDdjYzE3MTdiZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0xMTI1LDcgKzExMjUsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2Vp
dmVyKToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5jb25u
ZWN0aW9uKCkuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29k
ZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgi
VW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAgIGVsaWYgYXN5bmNfbWVzc2FnZXMgb3Ig
cmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVURSkg
b3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19BU1lOQ19ESVNQQVRDSF9NRVNTQUdFX0FU
VFJJQlVURSk6CiAgICAgICAgIHJlY2VpdmVfdmFyaWFudCA9IHJlY2VpdmVyLm5hbWUgaWYgcmVj
ZWl2ZXIuaGFzX2F0dHJpYnV0ZShMRUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFKSBlbHNlICcnCkBA
IC0xMTQ4LDcgKzExNDgsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVy
KToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJ
bnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYg
Ly8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2Ug
JXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQog
CiAgICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FUVFJJQlVURSkgYW5k
IChzeW5jX21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hf
TUVTU0FHRV9BVFRSSUJVVEUpKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVz
c2FnZVJlY2VpdmVyLmNwcAppbmRleCA1NjQ5NmRkYmE1ZWE0NDI0ZDQyZTFmY2Y1YzI1NjMzOGVk
Mjg0ZTJmLi4zODQxZmFmMzE3NTYxY2MyY2IzYTQyODVhZjM2NTNmZjRjMjI3YzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1
ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgVGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdu
b3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAv
LyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01F
U1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVj
b2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBS
SXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdl
TWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGNhYjU1OWY2ZTU3Yzg1
N2I5MzQzNzVlYWJlNTlhN2JiNDlhZWFiNDQuLmFhYzZiYjM1YzhlMThiOTc2YmExNjg4NTFhZjRm
ZjUyMzljYTU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIu
Y3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgVGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNv
bm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVy
bjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVz
Y3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdl
ICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkp
LCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElt
YWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBhOWIwNzg5
YzU5YWE5YTRlNWJiYjIxNTlhNWQxZWMwM2U1ODY3MjVjLi4yNDU0YjNkYWU2OGQwZDQ0ZTA3NTM3
ZmEzZWI4MjUzMDZlN2E0ODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJl
Y2VpdmVyLmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjbwogICAg
IGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAg
ICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1
NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRp
b25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQg
bWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoSW1h
Z2VEYXRhOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVy
LmNwcAppbmRleCBkMWFjNjJiN2E2NTJjZjVjYzNhYjE5OGRmNjgwOGI3ZDhmNGY3MjJkLi5jODlm
NDc3ODkxNmE5NDU5YjdlOGVhN2QxMzg1MDFkMGM4NWU5NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lYwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJV
bmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVz
c2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQ
Qzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlv
bklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5j
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4
IDE5OWYzYzMxZjVjMDRkYzliOGY3YTc4YzIzNTI1NTExMTRjODM0NDEuLjUzNjM4MjM4YzNhMzZj
NDQ0YzQ5ZjkyZWJjZGMxYTA2OWMzOWY2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVN
ZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgVGVzdFdpdGhTZW1hcGhv
cmU6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkp
CiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVz
dFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNl
aXZlci5jcHAKaW5kZXggY2RjMWVmMTYxMGRmY2ZkYTNiZTI3ODdlYzgzMzM5ODM2ODU4YTMwYy4u
MThhZGQ4YTZmYjYwN2I3NjhhMzcwMzk4NjMzMDUwNGMyNzg2MmZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
dm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlk
TWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5o
YW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6
OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuY3BwCmluZGV4IGRkMmI2MWJjMzQxMThjYzZiYjA1YzY4NzRhYjAyODIxYjhm
MWI5ZTEuLjY3ODU0ZjgwOWZlNmYyYzI1NDIyYzgyMjA1NDNhMThjMGZlMGI2NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQg
VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmIGNvCiAgICAgaWYgKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmlnbm9y
ZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8g
RU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdl
ICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkp
LCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91
dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4
IGMyOGU1ZThlODhjNzBkMjA5NWExM2MxODI1MGM1YzNhYzg0MTc5NjIuLjE5YWU5YjBjMmQ0YTI4
M2EyNGI1Y2FlODNmZDI4ODAxMTEwOTA2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0
cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFRlc3RX
aXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OgogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQog
CiBib29sIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8
SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDVhODViMDE5NjA0
MjAxNmFiNjg1ZjIwZDRiZWY3M2M0NjI2NTYwNy4uN2VmMTJiYmJjZjc1ODc1MjU5NGUzNTMwMDEz
Y2I4MGY3OWQyOWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMzMsNyArMTMzLDggQEAgTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25u
ZWN0aW9uLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAK
IAotTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cCBAbm8tdW5pZnkKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5jcHAKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5pZnkKQEAgLTg3NCw1ICs4NzUsNiBAQCBS
ZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1v
dGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVz
c2FnZVJlY2VpdmVyLmNwcAogV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCA1MDg5OGU0NjMwMTczMTk0YWU0ZWY3Y2NlNDNhZThlYjQ2NzNhODZiLi4xYjlkOTdjMzhjNDEy
YTdjYzhkM2ZmYzRhNTJjYTVjZTY1Njc1NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Vu
aWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvVW5pZmll
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE3LDYgKzE3LDEwIEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMS1tbS5tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEw
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTEzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNC5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMTUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDE0MTljNWRhYjNkOTc4MjJhMDll
MjQwYjY1YWI5ZDdjYWM4N2Q3ZC4uOGExNWJmOWEzZDEwNmNhNGI0NTNiNTc1NWJlN2IyOTZkMTMy
NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zOTUsNiArMzk1LDEwIEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0
b3JVSVByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMDkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDku
Y3BwICovOyB9OwogCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEx
MS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FF
Q0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi87IH07CisJCTJD
QUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQUVDQjVFMjc0NjVBRTMwMEFC
NzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLzsgfTsKKwkJM0NBRUNCNjYyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTMuY3BwICovOyB9OworCQk0Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgKi87
IH07CisJCTVDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQUVDQjVFMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLzsgfTsKIAkJMUNBRUNCNjcy
NzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMDguY3BwICovOyB9OwogCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEx
MC5jcHAgKi87IH07CiAJCTFDQUVDQjY5Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTA0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLzsgfTsKQEAg
LTg4MSw3ICs4ODUsNiBAQAogCQk0MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JU
Q1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07
CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUz
REJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsKIAkJNDFERDcy
QUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldTUEkuaCAq
LzsgfTsKLQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1
MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9
OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZC
Qjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTQxRTI0MkUwMjZF
MEM5MDgwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUyNDJERjI2RTBDOTA0MDA5QThD
NjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29hLm1tICovOyB9OwogCQk0MUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjBERDE2NTQzMTc1
MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBA
IC0zMTg2LDYgKzMxODksMTAgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdC9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOS5jcHA7IHBhdGgg
PSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA5
LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjVFMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFVuaWZpZWRTb3VyY2UxMTEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQkyQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEyLmNwcDsgcGF0aCA9
ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTIu
Y3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJM0NBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VW5pZmllZFNvdXJjZTExMy5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZp
ZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCTRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTE0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTQuY3BwOyBwYXRoID0g
IkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNC5j
cHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1Q0FFQ0I1RTI3NDY1
QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBV
bmlmaWVkU291cmNlMTE1LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTUuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOC5jcHA7IHBhdGggPSAi
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNw
cCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjYwMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVu
aWZpZWRTb3VyY2UxMTAuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEw
NC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA0LmNwcDsgcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDQuY3Bw
Ijsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQxNTgsNiArNDE2NSw5
IEBACiAJCTQxRkNENkJEMjNDRTA0M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZDRDZCRjIzQ0UwNDQwMDBDNjI1NjcgLyog
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAv
KiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2su
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZB
RTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRBMkQ4QUQwMDYxRjM5
MCAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODIwMiw2ICs4MjEyLDEwIEBACiAJCQkJMUNBRUNC
NUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovLAogCQkJCTFDQUVD
QjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLywKIAkJCQkxQ0FF
Q0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi8sCisJCQkJMkNB
RUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwICovLAorCQkJCTND
QUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEzLmNwcCAqLywKKwkJCQk0
Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgKi8sCisJCQkJ
NUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovLAogCQkJ
KTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcyI7CkBAIC0xMDM1MSw2ICsxMDM2NSw5IEBACiAJCTkz
QkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUZGRDJEQTI3NUE1NjBCMDA1MDFCQkYg
LyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8sCisJCQkJNDFGRkQyREIyNzVBNTYw
QzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCAqLywKKwkJCQk0MUZGRDJE
QzI3NUE2QTk0MDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5p
biAqLywKIAkJCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHAgKi8sCiAJCQkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suaCAqLywKIAkJCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLywKQEAgLTE1MjQyLDcgKzE1MjU5LDYgQEAK
IAkJCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QkNGNzBERTI2MTVEMDZF
MDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdENvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFERTdDNkMyMjI3OEYx
RTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVyQ29w
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NDUzLDYgKzE1
NDY5LDEwIEBACiAJCQkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjgyNzQ2NUFFNDAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjYyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNBRUNC
NjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNENBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4QTFGQzAyM0E1NTFC
RjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNE
NDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCAwYjg0YmJk
MzY4ZmVjOWQ0ZGE5NjdiZmUzMTQwNjBjODAyM2JiNGRkLi44MzIwODIwNmM2NGE2NjJhMjc5ODcz
ZjljNjZkOTQyMmM2YWQ2NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CkBAIC0zOTEsNiArMzkxLDEyIEBAIGJvb2wgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OmlzVGhyb3R0bGVhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsKIH0K
IAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29udmVydEZldGNoVG9Eb3du
bG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2VydmljZVdv
cmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdv
cmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKKyAgICAgICAgc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LT5jb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2soU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3
b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpEaWRGYWlsSGVhcnRCZWF0Q2hlY2sgeyBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IGU3ZGY3ZDk0MWFjZTkwNjQxNGVj
ZmZmNTBjNGJhNDc5ZDE0NjRkZDUuLjA1ODBkOTgzMjI4YTcyYmI4Yzk5NDljYTJiMWI0YzcxMThm
YWM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtMTA2LDYgKzEwNiw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KTsK
ICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRUaHJvdHRsZVN0YXRlKGJvb2wgaXNUaHJv
dHRsZWFibGUpOworICAgIHZvaWQgY29udmVydEZldGNoVG9Eb3dubG9hZChXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNhbmNlbEZldGNoRG93bmxv
YWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
Zmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDUyOGJlY2E0ZWE0Y2I1NzU4NmM1Zjg2ODFmZGFhYWIyZTM3MTFkMmMuLmQ1NDFiODAzMTky
YjhkNTRkMTgyMTdmYjExMjU2ZGYwMDY5NTMwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00Myw2ICs0Myw4IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVwZGF0
ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9y
ZSkKICAgICBDbG9zZSgpCiAgICAgU2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0bGVhYmxl
KQorCisgICAgQ29udmVydEZldGNoVG9Eb3dubG9hZChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBmZWU4ZmVhN2JjYzhkNTljMDdlM2M1YmE0ZDYwOTU1MmE0
ZDYyOGJmLi5jN2RlNDE2NjkxNzNjNDU4N2UzOTFiMjI2NzVkYmNjYWJmZWFhMjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtODQs
NyArODUsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNl
aXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNo
VGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3du
bG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNl
CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNo
VGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJl
ZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwNyw3ICsxMTEsMTAgQEAgdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVm
PEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdl
IHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMuCiAgICAgVVJMIGJs
b2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAgaWYgKGJsb2JVUkwuaXNOdWxsKCkp
IHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RG
TW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgICAgIGlmIChtX2lz
RG93bmxvYWQpCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxNDIsMTAgQEAgdm9pZCBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5rKGNvbnN0IHVpbnQ4X3Qq
IGRhdGEsIHMKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBk
YXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5p
c2hCbG9iTG9hZGluZygpCkBAIC0xNTcsNyArMTY3LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBt
X2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBtX2Zl
dGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xNzQsNyArMTg3LDEwIEBA
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIpOwor
ICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50
aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7
CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xOTQsNiArMjEwLDEyIEBAIHZvaWQgV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxs
cHRyOwogfQogCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNvbnZlcnRG
ZXRjaFRvRG93bmxvYWQoKQoreworICAgIG1faXNEb3dubG9hZCA9IHRydWU7CisgICAgY29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7CiAgICAgUkVMRUFTRV9M
T0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudDo6Y29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UsIGhhcyBjb25uZWN0aW9uICVkLCBkaWRGaW5pc2ggJWQsIHJl
c3BvbnNlIHR5cGUgJWxkIiwgISFtX2Nvbm5lY3Rpb24sIG1fZGlkRmluaXNoLCBzdGF0aWNfY2Fz
dDxsb25nPihtX3Jlc3BvbnNlRGF0YS5pbmRleCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmgKaW5kZXggYjM0N2NhZDJhYjVmNTcxYjFhMGUyMDcyMDgwNDM2N2Q3NzAxODYw
MC4uMDFmNjEwYmQ0MzNhMmU5YWZjOWExZmRkNTRiMDg0MzBiOTgzN2Q3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKICAg
ICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgZmluYWw7CisgICAgdm9pZCBjb252
ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgZmluYWw7CiAKICAgICB2b2lkIGNsZWFudXAoKTsKICAgICAK
QEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNlIH07CiAgICAgc3RkOjp2YXJpYW50PHN0
ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgUmVmPFdlYkNvcmU6OkZv
cm1EYXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+PiBtX3Jlc3BvbnNlRGF0
YTsKICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEb3dubG9h
ZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTQ4YWYxOTg3YmZlNWE3YzJm
NzQxYmJhNjBjMzllYTAyNWNkZTgxLi45MTQzN2EwZjVlODk3MTQyN2MyZGNmNzZhMjY0N2U1NjNh
MGM0ZGNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdCBydW5uZXIgQVBJIHRvIGxvZyB0aGUgdG90YWwgZG93
bmxvYWQgc2l6ZS4KKyAgICAgICAgVGhpcyBoZWxwcyBlbnN1cmluZyB0aGF0IHNlcnZpY2Ugd29y
a2VyIGxvYWRzIGFyZSBjb3JyZWN0bHkgZG93bmxvYWRlZCBhbmQgZG8gbm90IHJlbHkgb24gbmV0
d29ya2luZy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisKIDIw
MjEtMTItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVSBQcm9jZXNzXSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIgYW5kIEZp
bHRlckVmZmVjdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggN2NlYTA2NzZkMjdiNzI3
MDE1MDI5NTlkMTdlMGNiNWM3Y2UwZWM2Yi4uNWY4NTI5OTIwNjM3MzFlMGMyMTI4YjIwYmJlZjZm
Yjc3MGRlY2I5NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zOSw2ICszOSw3IEBA
IGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBEb3dubG9hZHMuCiAgICAgdW5kZWZpbmVk
IHdhaXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKICAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9n
RG93bmxvYWRDYWxsYmFja3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFNob3Vs
ZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuIHZhbHVlKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFJFTkRFUl9UUkVFX1NIT1dfQUxMX0xBWUVSUyAgICAgICAgICAgID0gMTsKICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBSRU5ERVJfVFJFRV9TSE9XX0xBWUVSX05FU1RJTkcgICAgICAgICA9
IDI7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAppbmRleCBlMWZjZTJjYTUxZjFiMDJkOWM0MzdiMDk5ZWY3MTgzNjYxNTkwY2My
Li5hMzI4MGRmMTZjZDQ0ZjZkMDk4MDA4ZTYxOTJhNGMxMTMwNGFlMjJhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTEwMDgsNiArMTAwOCwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2Fk
Q2FsbGJhY2tzKGJvb2wgdmFsdWUpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRTaG91bGRMb2dE
b3dubG9hZENhbGxiYWNrcyIsIHZhbHVlKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91
bGRMb2dEb3dubG9hZFNpemUoYm9vbCB2YWx1ZSkKK3sKKyAgICBwb3N0UGFnZU1lc3NhZ2UoIlNl
dFNob3VsZExvZ0Rvd25sb2FkU2l6ZSIsIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpz
ZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKEpTU3RyaW5nUmVmIHVzZXJuYW1lKQogewogICAgIHBv
c3RQYWdlTWVzc2FnZSgiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHRvV0sodXNlcm5hbWUp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggMzFmMTA2Zjk5M2I4YjY3NTdhOTY5MjJkNmIwY2Q0YzRjNDQ2ODFhZC4uNWM2
YTk2Y2FlMDFmNTkyNTU0NWI4ZjA2MGVhZmRmMmQ2YmUxYmYyNSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTIxNSw2ICsy
MTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRG93bmxvYWRzCiAgICAgYm9vbCBzaG91bGRGaW5pc2hB
ZnRlckRvd25sb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaW5pc2hBZnRlckRvd25sb2Fk
OyB9CiAgICAgdm9pZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sKTsKKyAgICB2
b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sKTsKIAogICAgIGJvb2wgc2hvdWxkQWxs
b3dFZGl0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZDI4MDJmYjFlNzY2
ZGM1ZGU2N2M0NGQxNTc2NjE2MzJjMzkzMWEzLi42YjhhY2JmZGZiYzRlNjFhNDYxNzg3ZWM3OTdk
NjcxMzk2Y2MyY2RmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5hdmlnYXRpb25EaWRC
ZWNvbWVEb3dubG9hZFNoYXJlZChXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBjCiAgICAgICAgIFRl
c3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMLAogICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZSwKLSAgICAgICAgbnVsbHB0ciwgLy8gZGlkV3JpdGVEYXRhCisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YSwKICAgICAgICAgVGVzdENvbnRy
b2xsZXI6OmRvd25sb2FkRGlkRmluaXNoLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxv
YWREaWRGYWlsCiAgICAgfTsKQEAgLTExMDgsNiArMTEwOCw4IEBAIGJvb2wgVGVzdENvbnRyb2xs
ZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
bnMsIFJlCiAgICAgICAgIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsK
ICAgICB9CiAKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB7IH07CisKICAgICBy
ZXR1cm4gbV9kb25lUmVzZXR0aW5nOwogfQogCkBAIC0yMjM3LDYgKzIyMzksOCBAQCBXS1N0cmlu
Z1JlZiBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5h
bWUoV0tEb3dubG9hZFJlZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlz
aChXS0Rvd25sb2FkUmVmKQogeworICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSkKKyAg
ICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJEb3dubG9h
ZCBzaXplOiAiLCBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4udmFsdWVfb3IoMCksICIuXG4i
KSk7CiAgICAgaWYgKG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCiAgICAgICAgIG1fY3Vy
cmVudEludm9jYXRpb24tPm91dHB1dFRleHQoIkRvd25sb2FkIGNvbXBsZXRlZC5cbiIpOwogICAg
IG1fY3VycmVudEludm9jYXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwpAQCAtMjI2OSw2ICsy
MjczLDE4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENv
bnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShudWxscHRyLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9uZyB0
b3RhbEJ5dGVzV3JpdHRlbikKK3sKKyAgICBpZiAoIW1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFj
a3MpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB0
b3RhbEJ5dGVzV3JpdHRlbjsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRX
cml0ZURhdGEoV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwg
bG9uZyBsb25nIHRvdGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVk
VG9Xcml0ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZG93bmxvYWREaWRX
cml0ZURhdGEodG90YWxCeXRlc1dyaXR0ZW4pOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjp3
ZWJQcm9jZXNzRGlkVGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikK
IHsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2hl
biBjcmFzaCBsb2dzIGFyZSBiZWluZyBzYXZlZCBvbiBXaW5kb3dzLCBzbwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDVjZDQ5ZmFmMzBkZTc4Y2NlYWNkNWFkMDNj
ODQ4NmRjNWZjOTFjMTAuLjQwM2VkYzIzZTg1MGExNDg0YzYxMmQ1OWQ0ZGJkYjA5OTFhMmMxN2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE5MCw2ICsxOTAs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tz
KGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyA9IHNo
b3VsZExvZzsgfQogICAgIHZvaWQgc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZShib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3Vs
ZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxv
YWRDYWxsYmFja3MgPSBzaG91bGRMb2c7IH0KKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2Fk
U2l6ZShib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSA9IHNob3VsZExv
ZzsgfQogCiAgICAgYm9vbCBpc0N1cnJlbnRJbnZvY2F0aW9uKFRlc3RJbnZvY2F0aW9uKiBpbnZv
Y2F0aW9uKSBjb25zdCB7IHJldHVybiBpbnZvY2F0aW9uID09IG1fY3VycmVudEludm9jYXRpb24u
Z2V0KCk7IH0KIApAQCAtNDczLDcgKzQ3NCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tV
UkxSZXNwb25zZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgYm9vbCBk
b3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdLVVJM
UmVxdWVzdFJlZik7CiAgICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV0tEb3dubG9hZFJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJl
ZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci0gICAgCisKKyAgICB2b2lkIGRvd25sb2FkRGlk
V3JpdGVEYXRhKGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbik7CisgICAgc3RhdGljIHZvaWQg
ZG93bmxvYWREaWRXcml0ZURhdGEoV0tEb3dubG9hZFJlZiwgbG9uZyBsb25nIGJ5dGVzV3JpdHRl
biwgbG9uZyBsb25nIHRvdGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVj
dGVkVG9Xcml0ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKICAgICBzdGF0aWMgdm9pZCB3
ZWJQcm9jZXNzRGlkVGVybWluYXRlKFdLUGFnZVJlZiwgIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHdlYlByb2Nlc3NEaWRUZXJt
aW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24pOwogCkBAIC02NjMsNiArNjY3LDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVk
IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50
ZWQgeyB0cnVlIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmcgbG9uZz4gbV9kb3dubG9hZFRv
dGFsQnl0ZXNXcml0dGVuOworICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgeyBmYWxz
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCmluZGV4IDNkZmFjNWZjMDA5ZTQ5NjU0NDRlNmI0MDkxZGJlZWIyZTIy
MWQyYmIuLjcyZmE4MmJiYzAxMDI5NmYwNGQxMzBlYzliYzZhNDM1N2NiZDBlOTMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC01MzcsNiArNTM3LDExIEBA
IHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxl
KFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZExv
Z0Rvd25sb2FkU2l6ZSIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
ZXRTaG91bGRMb2dEb3dubG9hZFNpemUoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiKSkgewogICAgICAgICBX
S1N0cmluZ1JlZiB1c2VybmFtZSA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKICAgICAgICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUodG9X
VEZTdHJpbmcodXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NTllZGM4NmNiNjgyMTg5ZTkyMzEyMzBkMDQ2
MzkxMmE4NWI0ZmI1Li40NDRjNWVkZTc1N2VlNTRmNjg3Yjg2MTkzMjgwYjY1MWEzMGYyYzY2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQu
aHR0cHMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1z
dHJlYW0uaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdo
LWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxv
YWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3du
bG9hZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5
OgorCiAyMDIxLTEyLTA0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIENTUyBhbmltYXRpb24gc29ydGluZyBtYXkgY3Jhc2ggZHVlIHRvIEFuaW1hdGlvbkxp
c3QgY29weSB1cG9uIENTUyBBbmltYXRpb24gcmVtb3ZhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKaW5kZXggZDVjNjYz
MGJiNTExZjVmN2FiMjhlZGQyMWI0MGFhOGZjMzM0NmVmNy4uNjAwMjkyMzlkMzdlMGMyZWZlYTIx
YzI1NWRlZjJmYWZmN2JmYjgzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMv
c2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCkBAIC0xLDMgKzEsMjEgQEAKIHNlbGYu
YWRkRXZlbnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVx
dWVzdC51cmwuaW5jbHVkZXMoImRvd25sb2FkLWJvZHkiKSkgeworICAgICAgICBjb25zdCByZXNw
b25zZSA9IG5ldyBSZXNwb25zZSgiYSBkb3dubG9hZCBib2R5IiwgeyJoZWFkZXJzIiA6IFtbIkNv
bnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVz
cG9uZFdpdGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVu
dC5yZXF1ZXN0LnVybC5pbmNsdWRlcygiZG93bmxvYWQtc3RyZWFtIikpIHsKKyAgICAgICAgY29u
c3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHN0YXJ0OiAoY29u
dHJvbGxlcikgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVu
Y29kZXIoKTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNv
ZGUoImEgZmlyc3QgY2h1bmssICIpKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IHsgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCJ0aGVuIGEgc2Vjb25kIGNodW5r
IikpOyB9LCAxMDApOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBjb250cm9s
bGVyLmNsb3NlKCk7IH0sIDIwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAg
ICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0sIHsiaGVhZGVycyIgOiBbWyJD
b250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vYmluYXJ5Il1dfSk7CisgICAgICAgIGV2ZW50LnJl
c3BvbmRXaXRoKHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBldmVudC5y
ZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0LnVybCkpOwogfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3du
bG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYyZWJjMmI4NmU2NmJiMzljOWJjMDlkM2RhOTNmNDAzMjQzMWJjZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0
ZWQgZmlsZW5hbWUgImRvd25sb2FkLWJvZHkiCitEb3dubG9hZCBzaXplOiAxNS4KK0Rvd25sb2Fk
IGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQt
Ym9keS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZDJkNDgwYTkxZGFhYzFjNmQ0ZDBlZWM4OWVj
YzI4N2Y0YmE5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ct
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNl
dFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3du
bG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlh
YmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQoreworICAg
IGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7CisgICAgd2luZG93
LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2FkLWJvZHkiOwor
fQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25s
b2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA5YTE5ZWJlMzdhMzE0YjNmNTg2MjQ4YTc2NjdmYTUwYzBmMzlm
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1
Z2dlc3RlZCBmaWxlbmFtZSAiZG93bmxvYWQtc3RyZWFtIgorRG93bmxvYWQgc2l6ZTogMzQuCitE
b3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXIt
ZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU3NzNmZTQ2OTY0MDY0MzMw
M2JlMDNmYTc0MGRjOGMxY2JhODA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAg
dGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25s
b2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9U
ZXN0KCkKK3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZyYW1lKCJyZXNvdXJjZXMvc2VydmljZS13
b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzLyIp
OworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9kb3du
bG9hZC1zdHJlYW0iOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCBkMDhlZjg0NmQzMmY2ZWM5MWQ5NDI3M2M5YzI0ZTBmMGYyY2E2MjAyLi45
ZTMzM2Q1NjkxZTk5YmJlNWRlMzMyYjVjYWZiMWU0ZmRlY2EzNzIzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNSBAQAogRG93bmxvYWQgc3RhcnRlZC4KIERvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dl
c3RlZCBmaWxlbmFtZSAiZG93bmxvYWQtYmluYXJ5LnB5IgorRG93bmxvYWQgc2l6ZTogOS4KIERv
d25sb2FkIGNvbXBsZXRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2Fk
Lmh0dHBzLmh0bWwKaW5kZXggOGM5YWRhM2ZjODEyYzM2MDk3YjNkMDM5NDE2NDA5MzVjYjIyZTc0
Ni4uNGE1YWE4N2I0ZWMwZDNkNzNjOTcxNjFlMDYyZmM3ZGM2OGExN2IyNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93
bmxvYWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCkBAIC03LDYgKzcsNyBAQAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICB0
ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb3dubG9hZEZpbmlzaGVkKCk7CiAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRp
c3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxv
YWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1k
b3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFiMmU1MGQ5MTljCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRp
bmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXNjcmlwdC5weSIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVl
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3Vs
ZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdv
cmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rv
d25sb2FkPXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2
YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0
aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmln
Z2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0
ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAo
KSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAg
IGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAg
ICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3Jr
ZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7
CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAi
JnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQg
aWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5k
IHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxv
YWQgc2luY2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8v
IERvd25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25z
dCBwcm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsK
K30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVjZjZlMGQzNmZh
MWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXBy
ZWxvYWQtc2NyaXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1k
b3dubG9hZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmZkZmVjNDJiYzMyMTIwNzAzMmM5MWY4
NDQ4N2IyMDRiZTUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRV
bmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFy
IHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVz
JnRva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdl
Q2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25tZXNz
YWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFjdGl2
YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtlci5w
b3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZVNl
cGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIi
KS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBsZXQgcmVnaXN0cmF0
aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2Vy
dmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBz
Y29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAg
ICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1
cmwgfSk7CisgICAgfQorCisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmc7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9
LCBbY2hhbm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGlsQWN0aXZhdGluZygpOwor
CisgICAgZmV0Y2godXJsICsgIiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsgbWV0aG9kOiAnUE9TVCcg
fSk7CisKKyAgICAvLyBMb2FkIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28gcHJl
bG9hZCB3aWxsIHN0YXJ0IGFuZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUgZG93bmxvYWRlZCwgdGhy
b3VnaCB0aGUgc2VydmljZSB3b3JrZXIuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUg
c2l6ZSBvZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVy
bCk7CisKKyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXdvcmtlci5qcwppbmRleCBkMDRhNDlhNzhjZDg5MjlhNGZkMGRiNGFiMGNlYjgwMWEwMTk1
MGU4Li42ODUwZTAxZGE5ZjFiNjZmY2NkZjNhOGYxNzg5NjExNzQzYjgxYmJkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzCkBAIC0yMyw1ICsy
Myw3IEBAIG9uYWN0aXZhdGUgPSAoZXZlbnQpID0+IHsKIH0KIAogc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNs
dWRlcygibm8tZmV0Y2gtZXZlbnQtaGFuZGxpbmciKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGV2
ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQu
cHkKaW5kZXggMjA2NzgzNmY1NDE3MDNkZTg0ZjA4YjhlYjNlNmNjOGMzMzgxMzlmZS4uOWE5YWZj
ZGI0NjUzZmY2N2U1ZDNkYzY1NWJmOGI5OTRlZWM3NzkwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLXNjcmlwdC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CkBA
IC0zMSw1ICszMSwxMCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgaWYgbm90
IHZhbHVlOgogICAgICAgICB2YWx1ZSA9IGIibm90aGluZyIKICAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKworICAgIGlmIGIiZG93bmxvYWQi
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQt
VHlwZSIsIGIiYXBwbGljYXRpb24vYmluYXJ5IikKKyAgICAgICAgcmV0dXJuIHZhbHVlLmRlY29k
ZSgpCisKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9o
dG1sIikKICAgICByZXR1cm4gIjxodG1sPjxib2R5PjxzY3JpcHQ+d2luZG93LnZhbHVlID0gJyVz
Jzs8L3NjcmlwdD48L2JvZHk+PC9odG1sPiIgJSB2YWx1ZS5kZWNvZGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446149</attachid>
            <date>2021-12-07 03:06:06 -0800</date>
            <delta_ts>2021-12-08 01:58:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211207120605.patch</filename>
            <type>text/plain</type>
            <size>97325</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxMmRkN2Y2ZDgyZDYy
NTA5ODg0M2ZkNjY4MzU5MTFlODA2ZGI4OC4uMTU1ZjVlYzJmZDhiMDE3ZTE5YjFlYzc2Mzc1YWNj
ZWU3MGUxMWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wMyAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhib3hdIEFjY291bnQg
Zm9yIGNhcHRpb25zIHdoZW4gZmxleGluZyB0YWJsZXMgd2l0aCBzcGVjaWZpZWQgc2l6ZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZTlhMjQxMTkxZWMyYmQwOGU4OTkxMTRiMzYyMjUxMTJjNWIyZTYwMC4uZjVjODA5
NTcwMDU1ZDRhNjU1NDk4YjI3MjYzNDgwMTRlMzNhYmQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MiBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIGNsYXNzIGFzIGEgTmV0d29ya0RhdGFU
YXNrIHdob3NlIHB1cnBvc2UgaXMgdG8gZG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgYSByZXNwb25z
ZSBnaXZlbiBmcm9tIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBBZGQgYSB3YXkgdG8gY29udmVy
dCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGludG8gZG93bmxvYWRzOgorICAgICAgICAtIElmIGEg
cHJlbG9hZCBpcyBvbmdvaW5nIGFuZCBjYW4gYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiwgdXNlIHRo
aXMgcHJlbG9hZCBhcyB0aGUgZG93bmxvYWQgTmV0d29ya0xvYWQuCisgICAgICAgIC0gSWYgYSBw
cmVsb2FkIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
IGFuZCBhIGNvcnJlc3BvbmRpbmcgTmV0d29ya0xvYWQgdG8gc3RhcnQgZG93bmxvYWRpbmcgdGhl
IHNlcnZpY2Ugd29ya2VyIHJlc3BvbnNlIGRhdGEuCisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLCB0aGUgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudCB3aWxsIGJlIG5vdGlmaWVkIHRvIHN0YXJ0IHNlbmRpbmcgcmVzcG9uc2UgZGF0YSB1c2lu
ZyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrCisgICAgICAgIGluc3RlYWQgb2YgU2VydmljZVdv
cmtlckZldGNoVGFzayBtZXNzYWdlcy4gVGhpcyBhbGxvd3MgY2FuY2VsbGluZyB0aGUgU2Vydmlj
ZVdvcmtlckZldGNoVGFzayB3aXRob3V0IGFueSBpc3N1ZS4KKworICAgICAgICBOb3RlIHRoYXQg
dGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lIGlzIG5vdCBhdWdtZW50ZWQ6IGlmIHRoZSBzZXJ2
aWNlIHdvcmtlciBleGl0cyBkdWUgdG8gYWxsIGl0cyBjbGllbnRzIGJlaW5nIGNsb3NlZCwgdGhl
IGRvd25sb2FkIHdpbGwgZmFpbC4KKworICAgICAgICBJbmNyZWFzZSB1bmlmaWVkIGJ1aWxkIGZp
bGVzIHRvIDExMi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHA6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2g6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3Nh
Z2VNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aElmTWVzc2Fn
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVz
dFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRl
c3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJl
YW1NZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0
dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6CisKIDIwMjEtMTItMDYgIFBlciBBcm5l
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIG1hY2ggc2Vydmlj
ZSBleHRlbnNpb25zIGZvciB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCmluZGV4IGViMjY2YjZjMDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUy
MzBmOWJkYjk5YTVlODM4N2RmZDk2MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFu
ZGxlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZl
bnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0
MDI2NWNjMjZkYi4uZGI2YzkzYjhiZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBA
IHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIGNvbm5lY3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKKwordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRj
aFRvRG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hU
b0Rvd25sb2FkICVsbHUiLCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRv
IGNsaWVudCA9IG1fb25nb2luZ0ZldGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0
aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoW2NsaWVudCA9IFJlZiB7ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVu
dC0+Y29udmVydEZldGNoVG9Eb3dubG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAg
IGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29u
bmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaAppbmRleCAwYTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1
ZjRhLi4wMWIzYWQwNDkxNWQ0YmUyN2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYs
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291
cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElk
ZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBlOGVhZDYwMjczYjc1MTg5NDAxNjYy
ZDRkZmEwYjMxNzNiMjJjOGI0Li4yYTUyNjU2YTM2Zjc2NzJiYWE1YTg1ODEwODM2Yjk4MzM4OTk5
YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwK
ICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggODU5MmQ5
OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVlZWY1NS4uOTMzZDI4MmNjYzdmMjIzOTYzZjA3
MTBkMGY2OTgzN2I0YjkzY2U3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNTIwMzVhYjBhMjQ1
M2I2M2Y4MjkyNzZlOTg0MGVkZDEzODI2MGRiNS4uOWFlMjZlNzY3NDUyZWNjMTgwYzU2MjI4ZmUy
ZjBiMzMzYmU1NTVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0zOTcsNiArMzk3LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxOTMzODg0OTYxYjRiYzMwNGYwODliMGI1
NGUxNDg5MWI1YzM0OGY0Li40MmZlMGVhYjFkNDBiYTZmYWEwZWIyMzcyM2JhZjQ0MmVjN2Q1MGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAJTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlciBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IFwKKwlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ayBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24gXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFk
NzNlNjc0MTcwLi5iODgwYjc2YjczMGVlNDU5YzNmMTlkYzI1ZmVmYTIxYTEwM2U2NjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjk1LDggKzY5NSw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChzdGQ6Om9wdGlvCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
Ci0gICAgLy8gSW4gY2FzZSBhIHJlc3BvbnNlIGlzIHNlcnZlZCBmcm9tIHNlcnZpY2Ugd29ya2Vy
LCB3ZSBkbyBub3QgaGF2ZSB5ZXQgdGhlIGFiaWxpdHkgdG8gY29udmVydCB0aGUgbG9hZC4KLSAg
ICBpZiAoIW1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09
IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgIGlmICghbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIpIHsKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+ZG93
bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChtX3Nlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVx
dWVzdCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4
IGJhYzAyMmFiNDU0MzBmNjUxYjE4OWFjMDEyMDdhMDYwNjA4YzE2NzEuLjZkZjE0MTA3MzZhYmEy
ZjJkOWExOTYxNTZjMGIxYmFmYThlNzA0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC01Niw2ICs1NiwxMyBAQCBOZXR3b3JrTG9hZDo6TmV0
d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwgQmxvYlJlZ2lzdHJ5SW1wbCogYmxv
YlJlZ2lzdAogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShuZXR3b3Jr
U2Vzc2lvbiwgKnRoaXMsIG1fcGFyYW1ldGVycyk7CiB9CiAKK05ldHdvcmtMb2FkOjpOZXR3b3Jr
TG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nl
c3Npb24sIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRh
VGFza0NsaWVudCYpPiYgY3JlYXRlVGFzaykKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAs
IG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Nlc3Npb24ubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAs
IG1fdGFzayhjcmVhdGVUYXNrKCp0aGlzKSkKK3sKK30KKwogdm9pZCBOZXR3b3JrTG9hZDo6c3Rh
cnQoKQogewogICAgIGlmICghbV90YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5oCmluZGV4IGMzNzczYzk4Nzg1NTNjZTUzNGQwNTRhYmZmZGRlYmIyOWVlMDg0
ZDIuLmI5MmY5YzYxZTEzNTkwYzQxY2JjMWQ4YjM4MjhkM2FjY2I3NTFiMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xh
c3MgTmV0d29ya0xvYWQgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWQoTmV0
d29ya0xvYWRDbGllbnQmLCBXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiYsIE5ldHdvcmtTZXNzaW9uJik7CisgICAgTmV0d29ya0xvYWQoTmV0d29ya0xv
YWRDbGllbnQmLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3Jr
RGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYpOwogICAgIH5OZXR3b3JrTG9hZCgp
OwogCiAgICAgdm9pZCBzdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU1MGNmNGFiYmU1NjRlNGNh
M2ZiNzI2Y2FhOWQ1NjljNTRiMDlkNzIuLmI4N2FkNGQzYzFjYTAzMTBkYjIzYTc5MjA4OWU1ZDE4
N2FjOGY5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4NCw2ICs0ODQsMTEgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwg
Y29uc3QgUmVzb3UKIHsKICAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnZlcnRUb0Rvd25sb2Fk
OiAoZG93bmxvYWRJRD0lIiBQUkl1NjQgIiwgaGFzTmV0d29ya0xvYWQ9JWQsIGhhc1Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXI9JWQpIiwgZG93bmxvYWRJRC50b1VJbnQ2NCgpLCAhIW1fbmV0d29y
a0xvYWQsICEhbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKTsKIAorI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyRmV0Y2hUYXNrICYmIG1fc2Vydmlj
ZVdvcmtlckZldGNoVGFzay0+Y29udmVydFRvRG93bmxvYWQobV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlm
IHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFtX25ldHdv
cmtMb2FkKSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9h
ZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCgpLCBkb3dubG9hZElELCByZXF1ZXN0
LCBtX3BhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5MWMzNjIz
ODNiN2E0NTA1NzUwZWM2MDUwYmNlMDgxNjU4MzZiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcApAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJX
ZWJFcnJvcnMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvd25s
b2FkSUQgZG93bmxvYWRJRCkKKyAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSwgZmFsc2UsIGZhbHNl
KQorICAgICwgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihzZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bikKKyAgICAsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpCisgICAgLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQorICAgICwgbV9mZXRjaElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKQorICAg
ICwgbV9kb3dubG9hZElEKGRvd25sb2FkSUQpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHNlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkpCisgICAgLCBtX3dyaXRlUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2siKSkKK3sKKyAgICBz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQorewor
fQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNsb3NlKCkKK3sKKyAgICBpZiAo
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbi0+dW5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
TWVzc2FnZT4gYm9vbCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZW5kVG9TZXJ2aWNlV29y
a2VyKE1lc3NhZ2UmJiBtZXNzYWdlKQoreworICAgIHJldHVybiBtX3NlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uID8gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+aXBjQ29ubmVjdGlvbigpLnNlbmQo
c3RkOjpmb3J3YXJkPE1lc3NhZ2U+KG1lc3NhZ2UpLCAwKSA6IGZhbHNlOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQoreworICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSgpIG11dGFi
bGUgeworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2s6OmNhbmNlbCgpCit7CisgICAgbV93cml0ZVF1ZXVlLT5kaXNwYXRjaChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIHsKKyAgICAgICAgaWYgKG1fZG93
bmxvYWRGaWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAg
ICAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAg
ICAgICBtX2Rvd25sb2FkRmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGU7CisgICAgICAgIH0KKyAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdE
b3dubG9hZExvY2F0aW9uKTsKKyAgICB9KTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24p
IHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2Vy
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBt
X3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBt
X2ZldGNoSWRlbnRpZmllciB9KTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOwor
ICAgIGNsb3NlKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6cmVzdW1l
KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCit7CisgICAgY2FuY2VsKCk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c2V0UGVuZGluZ0Rvd25sb2Fk
TG9jYXRpb24oY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQorewor
ICAgIGlmICghbmV0d29ya1Nlc3Npb24oKSkgeworICAgICAgICBtX3dyaXRlUXVldWUtPmRpc3Bh
dGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIE5ldHdvcmtEYXRhVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRp
b24oZmlsZW5hbWUsIHsgfSwgYWxsb3dPdmVyd3JpdGUpOworCisgICAgQVNTRVJUKCFtX3NhbmRi
b3hFeHRlbnNpb24pOworICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpKTsKKyAgICBpZiAobV9zYW5k
Ym94RXh0ZW5zaW9uKQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKKwor
ICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBhbGxvd092ZXJ3cml0ZSAsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBGaWxlU3lzdGVt
OjpmaWxlRXhpc3RzKGZpbGVuYW1lKSkKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZp
bGUoZmlsZW5hbWUpOworCisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2Rl
OjpXcml0ZSk7CisgICAgICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c3RhcnQoKQorewor
ICAgIEFTU0VSVChtX3N0YXRlICE9IFN0YXRlOjpDb21wbGV0ZWQpOworCisgICAgaWYgKCFzZW5k
VG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
Q29udmVydEZldGNoVG9Eb3dubG9hZCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pKSB7CisgICAgICAg
IG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XSgpIG11dGFibGUgeworICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgICAg
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5u
aW5nOworCisgICAgYXV0byYgbWFuYWdlciA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFu
YWdlcigpOworICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihtYW5hZ2Vy
LCBtX2Rvd25sb2FkSUQsICp0aGlzLCAqbmV0d29ya1Nlc3Npb24oKSk7CisgICAgYXV0byogZG93
bmxvYWRQdHIgPSBkb3dubG9hZC5nZXQoKTsKKyAgICBtYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93
bmxvYWRUYXNrKG1fZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgIGRvd25sb2Fk
UHRyLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCit7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm47CisK
KyAgICBzaXplX3QgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9kb3du
bG9hZEZpbGUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisKKyAgICBpZiAoYnl0ZXNXcml0
dGVuICE9IGRhdGEuc2l6ZSgpKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBieXRlc1dyaXR0ZW5dIHsKKyAgICAgICAgbV9kb3dubG9h
ZEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAgIGlmIChhdXRvKiBkb3dubG9h
ZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGlu
Z0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKGJ5dGVz
V3JpdHRlbiwgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9v
cCgpKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHdyaXRpbmcgZm9ybURhdGEgaW4gZG93bmxv
YWRzLgorICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEgbm90IGltcGxlbWVudGVkIik7CisgICAg
ZGlkRmFpbERvd25sb2FkKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6
ZGlkRmluaXNoKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBGaWxl
U3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgIG1fZG93bmxvYWRGaWxlID0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKworICAgIGNhbGxPbk1haW5S
dW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0geworICAgICAgICBt
X3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgY2xvc2UoKTsKKworICAgICAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24t
PnJldm9rZSgpOworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+
ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAg
ICAgICBkb3dubG9hZC0+ZGlkRmluaXNoKCk7CisKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHsgfSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkRmFpbChSZXNvdXJjZUVycm9y
JiYgZXJyb3IpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgZGlkRmFp
bERvd25sb2FkKFdURk1vdmUoZXJyb3IpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjpkaWRGYWlsRG93bmxvYWQoc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiYmIGVy
cm9yKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIGlmIChtX2Rvd25s
b2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CisgICAg
ICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAgIG1fZG93
bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICB9
CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsK
KworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgZXJyb3IgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShlcnJvcikpXSB7CisgICAgICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpDb21wbGV0ZWQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIGNsb3NlKCk7CisK
KyAgICAgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51
bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlc291cmNlRXJyb3IgPSBlcnJvci52
YWx1ZV9vcihjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICBpZiAoYXV0
byBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2Fk
KG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93bmxvYWQtPmRpZEZhaWwocmVz
b3VyY2VFcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlKCkpOworCisgICAgICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJvcihyZXNvdXJjZUVy
cm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYzg5NzZiYWI4NTE1OTZhNzBlNzcwZjk1ZGVhMmZiNzcwYWEz
MTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApAQCAtMCwwICsxLDEwNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
ZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUg
PHd0Zi9Xb3JrUXVldWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVy
ZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xh
c3MgTmV0d29ya1Byb2Nlc3M7CitjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOworCitjbGFzcyBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrIDogcHVibGljIE5ldHdvcmtEYXRhVGFzaywgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhy
ZWFkTWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgRG93bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJl
ZigqIG5ldyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVj
dGlvbiwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrKCk7CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKyAgICB2
b2lkIGNvbnRleHRDbG9zZWQoKSB7IGNhbmNlbCgpOyB9CisgICAgdm9pZCBzdGFydCgpOworICAg
IHZvaWQgc3RvcCgpIHsgY2FuY2VsKCk7IH0KKworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6
cmVmOworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVyZWY7CisgICAgdXNpbmcgTmV0d29y
a0RhdGFUYXNrOjp3ZWFrUHRyRmFjdG9yeTsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6Oldl
YWtWYWx1ZVR5cGU7CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIERvd25sb2FkSUQpOworCisgICAgLy8g
SVBDIE1lc3NhZ2UKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlz
aCgpOworICAgIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworCisgICAg
Ly8gTmV0d29ya0RhdGFUYXNrCisgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKKyAgICB2b2lkIHJl
c3VtZSgpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIGZpbmFsOworICAg
IFN0YXRlIHN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQg
c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYsIGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBmaW5hbDsKKwor
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIHJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRl
cmVmTWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZXNzYWdlPiBib29sIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZSYmKTsKKyAg
ICB2b2lkIGRpZEZhaWxEb3dubG9hZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+JiYgPSB7IH0pOworICAgIHZvaWQgY2xvc2UoKTsKKworICAgIFdlYWtQdHI8V2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uPiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOworICAgIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7
CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2ZldGNoSWRl
bnRpZmllcjsKKyAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKKyAgICBSZWY8TmV0d29ya1By
b2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1f
c2FuZGJveEV4dGVuc2lvbjsKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3dyaXRlUXVldWU7CisgICAg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3dubG9hZEJ5
dGVzV3JpdHRlbiB7IDAgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRlZCB9
OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZDNiZmI3Y2MzMTA5Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5vdFJlZkNv
dW50ZWQgeworICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBE
aWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
aW5kZXggZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNDc3ZTg4MjUx
YmM5MDkxZGExNGJhMmEyYzMzYjM3NDNhOWUzMjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKQEAgLTMwMiw3ICszMDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpjYW5ub3RIYW5kbGUoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbmNlbEZy
b21DbGllbnQoKQogewotICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGllbnQ6
Iik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDogaXNEb25lPSVk
IiwgbV9pc0RvbmUpOworICAgIGlmIChtX2lzRG9uZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
c2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKQEAgLTQxNiw2ICs0
MjAsMzYgQEAgTmV0d29ya1Nlc3Npb24qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNlc3Npb24o
KQogICAgIHJldHVybiBtX3N3U2VydmVyQ29ubmVjdGlvbiA/IG1fc3dTZXJ2ZXJDb25uZWN0aW9u
LT5zZXNzaW9uKCkgOiBudWxscHRyOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBk
b3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3ByZWxvYWRlciAgJiYgIW1fcHJlbG9h
ZGVyLT5pc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIG1fcHJlbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChtYW5hZ2VyLCBkb3dubG9hZElE
LCByZXF1ZXN0LCByZXNwb25zZSk7CisKKyAgICBhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lv
bigpOworICAgIGlmICghc2Vzc2lvbiB8fCAhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9pc0RvbmUgPSB0cnVlOworCisgICAgLy8gRklY
TUU6IFdlIG1pZ2h0IHdhbnQgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgYWxpdmUgdW50aWwg
dGhlIGRvd25sb2FkIGVuZHMuCisgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+
IHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyRG93bmxv
YWRMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4obV9sb2FkZXIsICpzZXNzaW9uLCBbJl0o
YXV0byYgY2xpZW50KSB7CisgICAgICAgIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgPSAgU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6Y3JlYXRlKCpzZXNzaW9uLCBjbGllbnQsICptX3NlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJ
RCk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNvcHlSZWYoKTsK
KyAgICB9KTsKKworICAgIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRs
ZXIgPSBbc2VydmljZVdvcmtlckRvd25sb2FkVGFzayA9IFdURk1vdmUoc2VydmljZVdvcmtlckRv
d25sb2FkVGFzayldKGF1dG8gcG9saWN5KSB7CisgICAgICAgIGlmIChwb2xpY3kgIT0gUG9saWN5
QWN0aW9uOjpEb3dubG9hZCkgeworICAgICAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2FkVGFz
ay0+c3RvcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2stPnN0YXJ0KCk7CisgICAgfTsKKworICAgIG1hbmFnZXIuY29u
dmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBXVEZNb3ZlKHNlcnZpY2VXb3Jr
ZXJEb3dubG9hZExvYWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCByZXF1ZXN0
LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgU1dGRVRDSF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgKaW5kZXggYWJhOTA1NzJmMDUxZWVkOTBmMmY3YTlkNTM1MDVlMWE0ZjRlOThj
Mi4uYzM0NTgwMjY3ZmIzMjY5ZTZkY2JkY2VmYzM0ZDA2ODJjNmEwODg2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgpAQCAtNTQsNiArNTUsNyBAQCBjbGFzcyBO
ZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgRG93bmxv
YWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29ya1Nl
c3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjsKQEAgLTg1LDYg
Kzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90SGFuZGxlKCk7CiAgICAgdm9pZCBjb250
ZXh0Q2xvc2VkKCk7CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdl
ciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIFNo
b3VsZFNldFNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXggNzFl
MGNmNmM2ZGM3YmVhNTIyYzkwNjAwNTU1ZjU3MjE2MWMzYzJmNC4uMDFjMWUyNTY0YTg2MTIyZWI2
NzFlMGY2YTg2OWZhOTg3YmUyNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0xvYWQuaCIKQEAgLTI0Miw2ICsyNDMsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvckJvZHkoQm9keUNhbGxiYWNrJiYgY2FsbGJhY2spCiAg
ICAgbV9ib2R5Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAorYm9vbCBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwg
c3RkOjpleGNoYW5nZShtX25ldHdvcmtMb2FkLCBudWxscHRyKSwgV1RGTW92ZShtX3Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5oCmluZGV4IDFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4ZjFl
YjQuLjhhNGYzY2RjNGE0MTYwZTlhYjc1Yjc2NTYxZjQyMWVkM2M3ZTVmNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICAiRG93
bmxvYWRJRC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0
d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKQEAg
LTM5LDYgKzQwLDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya0xvYWQ7CiBjbGFz
cyBOZXR3b3JrU2Vzc2lvbjsKIApAQCAtNjAsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25zdCB7
IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbmFibGVk
OyB9CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4K
ICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCA4YjIxMzg1
MmQwZjExN2RlZjgxOWQ0NTJkYjdiOGZjZjQ5ZTM3NTZiLi5mMGE4OTY3NWNjMTQ0MzcwOGEwYjY4
YWM5MzFjZTc3ZmQyNWM0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC01OSw2ICs2MCwxMCBAQCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24oKQogICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQogICAgICAg
ICBmZXRjaC0+Y29udGV4dENsb3NlZCgpOwogCisgICAgYXV0byBkb3dubG9hZHMgPSBXVEZNb3Zl
KG1fb25nb2luZ0Rvd25sb2Fkcyk7CisgICAgZm9yIChhdXRvJiBkb3dubG9hZCA6IGRvd25sb2Fk
cy52YWx1ZXMoKSkKKyAgICAgICAgZG93bmxvYWQtPmNvbnRleHRDbG9zZWQoKTsKKwogICAgIGlm
IChtX3NlcnZlciAmJiBtX3NlcnZlci0+Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURv
bWFpbihyZWdpc3RyYWJsZURvbWFpbigpKSA9PSB0aGlzKQogICAgICAgICBtX3NlcnZlci0+cmVt
b3ZlQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwogfQpAQCAtMTk3LDYgKzIwMiwxOSBAQCB2b2lk
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2smIHRhcwogICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2suZmV0
Y2hJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQorewor
ICAgIEFTU0VSVCghbV9vbmdvaW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlm
aWVyKCkpKTsKKyAgICBtX29uZ29pbmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVy
KCksIHRhc2spOworICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksICZ0YXNrLCB0YXNrLmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkpOwor
fQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckRvd25s
b2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgbV9vbmdvaW5nRG93
bmxvYWRzLnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24u
Y29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0YXNrLmZldGNoSWRl
bnRpZmllcigpLnRvVUludDY0KCkpOworfQorCiBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OndlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXgg
NGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1NzZlNzUyMTEwZC4uMzM2NThjNTRjMTRmYTRh
NDQ0Yjc0MzZkZDkwYjA4NTlhMjQyYmI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg+CkBAIC03NCw4ICs3NSwxMSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFz
ayYpOwogICAgIHZvaWQgdW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smKTsK
KyAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOwor
ICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsK
IAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkg
Y29uc3Q7CisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9j
b25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKQEAgLTEwMyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgV2Vha1B0cjxXZWJDb3JlOjpT
V1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIs
IFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckRv
d25sb2FkVGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRsZWFi
bGUgeyB0cnVlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlE
OwogICAgIHNpemVfdCBtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAppbmRleCBi
NmQ0MGFkOWU5NTQ3YmQ0MGRlODVjOWM4NWEzNWMxZTI1Y2RmMTkxLi4yYTNkNmI1ZWViMjQxNDAx
YzgwZWEzYmVkODIzODJkMDM1NjUyMzY0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKQEAgLTE0LDcgKzE0LDcgQEAgaWYgWyAteiAi
JHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4KICAgICBmaQogZmkKIAotVW5pZmllZFNvdXJj
ZUNwcEZpbGVDb3VudD0xMTEKK1VuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTE1CiBVbmlmaWVk
U291cmNlTW1GaWxlQ291bnQ9ODAKIAogaWYgWyAkIyAtZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAwOTMwY2Y5MTdiYTc5MGU1NzVkODRi
OTY5ZWFjMDU4MWY1MmY1MTZlLi44YTQ3NDljZDQ0YmRkNDllOGM2ZTkyNjQwYWE0N2NjMTcxN2Jl
NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTExMjUs
NyArMTEyNSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5p
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcj
ZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0gICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0
cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQg
c3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ31cbicpCiAgICAgZWxpZiBhc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5o
YXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKSBvciByZWNlaXZl
ci5oYXNfYXR0cmlidXRlKFdBTlRTX0FTWU5DX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKToK
ICAgICAgICAgcmVjZWl2ZV92YXJpYW50ID0gcmVjZWl2ZXIubmFtZSBpZiByZWNlaXZlci5oYXNf
YXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUpIGVsc2UgJycKQEAgLTExNDgsNyAr
MTE0OCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpOgogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNz
YWdlRm9yVGVzdGluZygpKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAg
cmV0dXJuO1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQ
Ukl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCiAKICAgICBpZiBu
b3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1fQVRUUklCVVRFKSBhbmQgKHN5bmNfbWVz
c2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FU
VFJJQlVURSkpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCmluZGV4IDU2NDk2ZGRiYTVlYTQ0MjRkNDJlMWZjZjVjMjU2MzM4ZWQyODRlMmYuLjM4
NDFmYWYzMTc1NjFjYzJjYjNhNDI4NWFmMzY1M2ZmNGMyMjdjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
dm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjoKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlk
TWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5o
YW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6
OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
VW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElm
TWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggY2FiNTU5ZjZlNTdjODU3YjkzNDM3NWVh
YmU1OWE3YmI0OWFlYWI0NC4uYWFjNmJiMzVjOGUxOGI5NzZiYTE2ODg1MWFmNGZmNTIzOWNhNTk2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU0
LDcgKzU0LDcgQEAgdm9pZCBUZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY28KICAgICBpZiAoY29ubmVjdGlvbi5p
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlm
IC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhf
TUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIg
UFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVz
c2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGE5YjA3ODljNTlhYTlhNGU1
YmJiMjE1OWE1ZDFlYzAzZTU4NjcyNWMuLjI0NTRiM2RhZTY4ZDBkNDRlMDc1MzdmYTNlYjgyNTMw
NmU3YTQ4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgVGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5l
Y3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3Jp
cHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhJbWFnZURhdGE6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4
IGQxYWM2MmI3YTY1MmNmNWNjM2FiMTk4ZGY2ODA4YjdkOGY0ZjcyMmQuLmM4OWY0Nzc4OTE2YTk0
NTliN2U4ZWE3ZDEzODUwMWQwYzg1ZTk2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgVGVz
dFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNz
YWdlKElQQzo6Q29ubmVjCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VG
b3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBt
ZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgp
KSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRI
X01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9
CiAKIGJvb2wgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVN5bmNUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1h
cGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMTk5ZjNjMzFm
NWMwNGRjOWI4ZjdhNzhjMjM1MjU1MTExNGM4MzQ0MS4uNTM2MzgyMzhjM2EzNmM0NDRjNDlmOTJl
YmNkYzFhMDY5YzM5ZjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNl
aXZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY28KICAgICBp
ZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAg
cmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1l
c3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aFNlbWFw
aG9yZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApp
bmRleCBjZGMxZWYxNjEwZGZjZmRhM2JlMjc4N2VjODMzMzk4MzY4NThhMzBjLi4xOGFkZDhhNmZi
NjA3Yjc2OGEzNzAzOTg2MzMwNTA0YzI3ODYyZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3Ry
ZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lkIFRlc3RX
aXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RAogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5jcHAKaW5kZXggZGQyYjYxYmMzNDExOGNjNmJiMDVjNjg3NGFiMDI4MjFiOGYxYjllMS4uNjc4
NTRmODA5ZmU2ZjJjMjU0MjJjODIyMDU0M2ExOGMwZmUwYjY0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBUZXN0V2l0aFN0
cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYgY28KICAgICBpZiAoY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuaWdub3JlSW52YWxpZE1l
c3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFu
ZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIg
UFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRl
c01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggYzI4ZTVlOGU4
OGM3MGQyMDk1YTEzYzE4MjUwYzVjM2FjODQxNzk2Mi4uMTlhZTliMGMyZDRhMjgzYTI0YjVjYWU4
M2ZkMjg4MDExMTA5MDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVz
c2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgVGVzdFdpdGhvdXRBdHRy
aWJ1dGVzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkp
CiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVz
dFdpdGhvdXRBdHRyaWJ1dGVzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29k
ZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwNWE4NWIwMTk2MDQyMDE2YWI2ODVm
MjBkNGJlZjczYzQ2MjY1NjA3Li43ZWYxMmJiYmNmNzU4NzUyNTk0ZTM1MzAwMTNjYjgwZjc5ZDI5
Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTEzMyw3ICsxMzMsOCBAQCBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhZW1vbkNsaWVudC5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAogCi1OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIEBuby11bmlm
eQorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
LmNwcAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
clNvZnRVcGRhdGVMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
T3JpZ2luU3RvcmUuY3BwIEBuby11bmlmeQpAQCAtODc0LDUgKzg3NSw2IEBAIFJlbW90ZVNoYWRl
ck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVdlYkxvY2tS
ZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDUwODk4ZTQ2
MzAxNzMxOTRhZTRlZjdjY2U0M2FlOGViNDY3M2E4NmIuLjFiOWQ5N2MzOGM0MTJhN2NjOGQzZmZj
NGE1MmNhNWNlNjU2NzU1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1t
Lm0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTExLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMTMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
NS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZGExNzQ5MjliMDk0NWMxNmI3NGQwODhhZjkwYzcz
NGEzYWQxN2Q5Li5jMjliMWY2MjA2M2ViZTgzMDUxOTdkYzM1YzE4ZjQ4NjllN2M3YTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5
NSw2ICszOTUsMTAgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clVJUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlN
ZXNzYWdlcy5oICovOyB9OwogCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi87IH07
CiAJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVFMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLzsgfTsKKwkJMkNBRUNCNjYyNzQ2
NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMTIuY3BwICovOyB9OworCQkzQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5j
cHAgKi87IH07CisJCTRDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRDQUVD
QjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLzsgfTsKKwkJNUNB
RUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNBRUNCNUUyNzQ2NUFFMzAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovOyB9OwogCQkxQ0FFQ0I2NzI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwOC5jcHAgKi87IH07CiAJCTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLzsg
fTsKIAkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjEyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICovOyB9OwpAQCAtODgxLDcgKzg4
NSw2IEBACiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0
MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1
OUMxRTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjEx
RjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OwogCQk0MURENzJBQjI2ODIxNjcz
MDBBOTBDNzEgLyogTldTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1NQSS5oICovOyB9OwotCQk0
MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcw
NEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRTBB
N0NCMjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3
RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNDFFMjQyRTAyNkUwQzkwODAwOUE4
QzY0IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTI0MkRGMjZFMEM5MDQwMDlBOEM2NCAvKiBOZXR3
b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgx
QyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAv
KiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTMxODUsNiAr
MzE4OCwxMCBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3Bl
Y3RvclVJUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA5LmNwcDsgcGF0aCA9ICJEZXJpdmVk
U291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDkuY3BwIjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNv
dXJjZTExMS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTExLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTJDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTIuY3BwOyBwYXRoID0gIkRlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAiOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291
cmNlMTEzLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2Vz
L1VuaWZpZWRTb3VyY2UxMTMuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJNENBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExNC5jcHA7IHBhdGggPSAiRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNwcCI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDQUVDQjVFMjc0NjVBRTMwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3Vy
Y2UxMTUuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTExNS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA4LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291
cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDguY3BwIjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJj
ZTExMC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTEwLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDQuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNC5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDE1Nyw2ICs0MTY0LDkgQEAKIAkJNDFG
Q0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRCMjc1
QTU2MEMwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0Yy
IC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MTk5LDYgKzgyMDksMTAgQEAKIAkJCQkxQ0FFQ0I1RDI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi8sCiAJCQkJMUNBRUNCNjAyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovLAogCQkJCTFDQUVDQjVFMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLywKKwkJCQkyQ0FFQ0I1RTI3NDY1
QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgKi8sCisJCQkJM0NBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovLAorCQkJCTRDQUVDQjVFMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLywKKwkJCQk1Q0FFQ0I1RTI3
NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzIjsKQEAgLTEwMzUwLDYgKzEwMzY0LDkgQEAKIAkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLywKKwkJCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYg
LyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovLAorCQkJCTQxRkZEMkRDMjc1QTZBOTQw
MDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovLAogCQkJ
CTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAq
LywKIAkJCQk0MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFz
ay5oICovLAogCQkJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLm1lc3NhZ2VzLmluICovLApAQCAtMTUyMzIsNyArMTUyNDksNiBAQAogCQkJCUE1NUJB
ODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAv
KiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQlFMThFNjkxNzE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4
NzIxMkI2QUIxMDBGNDkzRkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEQzE4RkVCRjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJDb3B5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEQzE4MTI0NUI1NDkzNDNCQzk4MTY0QyAvKiBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NDgsNiArMTU0NjQsMTAgQEAK
IAkJCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyQ0FFQ0I2NjI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzQ0FF
Q0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTExNS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYg
LyogVXNlckludGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTcz
MkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDBiODRiYmQzNjhmZWM5ZDRk
YTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQuLjgzMjA4MjA2YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIy
YzZhZDY1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM5MSw2
ICszOTEsMTIgQEAgYm9vbCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aXNUaHJvdHRs
ZWFibGUoKSBjb25zdAogICAgIHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOwogfQogCit2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQorICAgICAgICBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHktPmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGZldGNoSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OmRpZEZhaWxIZWFydEJlYXRDaGVjayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkRpZEZhaWxI
ZWFydEJlYXRDaGVjayB7IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0sIDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggZTdkZjdkOTQxYWNlOTA2NDE0ZWNmZmY1MGM0YmE0
NzlkMTQ2NGRkNS4uMDU4MGQ5ODMyMjhhNzJiYjhjOTk0OWNhMmIxYjRjNzExOGZhYzYxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0xMDYsNiArMTA2LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpOwogICAgIHZvaWQg
Y2xvc2UoKTsKICAgICB2b2lkIHNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSk7
CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY2FuY2VsRmV0Y2hEb3dubG9hZChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKIAog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3M7CiAg
ICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9yZWdpc3RyYWJsZURvbWFpbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNTI4YmVj
YTRlYTRjYjU3NTg2YzVmODY4MWZkYWFhYjJlMzcxMWQyYy4uZDU0MWI4MDMxOTJiOGQ1NGQxODIx
N2ZiMTEyNTZkZjAwNjk1MzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTQzLDYgKzQzLDggQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlUHJlZmVyZW5j
ZXNTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQogICAgIENs
b3NlKCkKICAgICBTZXRUaHJvdHRsZVN0YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpCisKKyAgICBD
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIg
aWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCmluZGV4IGZlZThmZWE3YmNjOGQ1OWMwN2UzYzViYTRkNjA5NTUyYTRkNjI4YmYuLmM3
ZGU0MTY2OTE3M2M0NTg3ZTM5MWIyMjY3NWRiY2NhYmZlYWEyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJG
b3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC04NCw3ICs4NSwxMCBA
QCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJl
ZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5z
aXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihi
dWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5z
aXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRh
PiYmIGZvcm1EYXRhKQpAQCAtMTA3LDcgKzExMSwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+
JgogICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0
aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4KICAgICBVUkwgYmxvYlVSTCA9IGZv
cm1EYXRhLT5hc0Jsb2JVUkwoKTsKICAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgewotICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1E
YXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKG1faXNEb3dubG9hZCkK
KyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7
IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBX
VEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTM1LDcgKzE0MiwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgdWludDhfdCogZGF0YSwgcwog
ICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRh
IHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRh
IHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUg
fSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQog
CiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JMb2Fk
aW5nKCkKQEAgLTE1Nyw3ICsxNjcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAg
IGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE3NCw3ICsxODcsMTAgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1f
aXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7Cisg
ICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNs
ZWFudXAoKTsKIH0KQEAgLTE5NCw2ICsyMTAsMTIgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAK
K3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udmVydEZldGNoVG9Eb3du
bG9hZCgpCit7CisgICAgbV9pc0Rvd25sb2FkID0gdHJ1ZTsKKyAgICBjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworfQorCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNl
V29ya2VyLCAiU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Ojpjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSwgaGFzIGNvbm5lY3Rpb24gJWQsIGRpZEZpbmlzaCAlZCwgcmVzcG9uc2UgdHlw
ZSAlbGQiLCAhIW1fY29ubmVjdGlvbiwgbV9kaWRGaW5pc2gsIHN0YXRpY19jYXN0PGxvbmc+KG1f
cmVzcG9uc2VEYXRhLmluZGV4KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aAppbmRleCBiMzQ3Y2FkMmFiNWY1NzFiMWEwZTIwNzIwODA0MzY3ZDc3MDE4NjAwLi4wMWY2MTBi
ZDQzM2EyZTlhZmM5YTFmZGQ1NGIwODQzMGI5ODM3ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRO
b3RIYW5kbGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOwogICAgIHZvaWQgY29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRGZXRjaFRv
RG93bmxvYWQoKSBmaW5hbDsKIAogICAgIHZvaWQgY2xlYW51cCgpOwogICAgIApAQCAtODQsNiAr
ODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlIHsgZmFsc2UgfTsKICAgICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRy
X3QsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBV
bmlxdWVSZWY8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4+IG1fcmVzcG9uc2VEYXRhOwogICAgIGJv
b2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Rvd25sb2FkIHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVjNzE1YjkyMWU4YTE3NzUxODE4YmE2NDg5Mjlm
YjcyMWViZTc4MTUuLjU5N2FjMDlkN2NmNWRlYTBjNjAxMjVmOGFhNDhiYjcyZThiMWRjOGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZXN0IHJ1bm5lciBBUEkgdG8gbG9nIHRoZSB0b3RhbCBkb3dubG9hZCBzaXpl
LgorICAgICAgICBUaGlzIGhlbHBzIGVuc3VyaW5nIHRoYXQgc2VydmljZSB3b3JrZXIgbG9hZHMg
YXJlIGNvcnJlY3RseSBkb3dubG9hZGVkIGFuZCBkbyBub3QgcmVseSBvbiBuZXR3b3JraW5nLgor
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKwogMjAyMS0xMi0wNiAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdGVzdHMgZm9yIGR1cGxpY2F0ZSBzdWIgZG9tYWlucwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggN2NlYTA2NzZkMjdiNzI3MDE1MDI5NTlkMTdlMGNi
NWM3Y2UwZWM2Yi4uNWY4NTI5OTIwNjM3MzFlMGMyMTI4YjIwYmJlZjZmYjc3MGRlY2I5NSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zOSw2ICszOSw3IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICAvLyBEb3dubG9hZHMuCiAgICAgdW5kZWZpbmVkIHdhaXRVbnRpbERvd25s
b2FkRmluaXNoZWQoKTsKICAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFj
a3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6
ZShib29sZWFuIHZhbHVlKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9UUkVF
X1NIT1dfQUxMX0xBWUVSUyAgICAgICAgICAgID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBSRU5ERVJfVFJFRV9TSE9XX0xBWUVSX05FU1RJTkcgICAgICAgICA9IDI7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRl
eCBlMWZjZTJjYTUxZjFiMDJkOWM0MzdiMDk5ZWY3MTgzNjYxNTkwY2MyLi5hMzI4MGRmMTZjZDQ0
ZjZkMDk4MDA4ZTYxOTJhNGMxMTMwNGFlMjJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEwMDgsNiArMTAwOCwx
MSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wg
dmFsdWUpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNr
cyIsIHZhbHVlKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRMb2dEb3dubG9hZFNp
emUoYm9vbCB2YWx1ZSkKK3sKKyAgICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25s
b2FkU2l6ZSIsIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRBdXRoZW50aWNhdGlv
blVzZXJuYW1lKEpTU3RyaW5nUmVmIHVzZXJuYW1lKQogewogICAgIHBvc3RQYWdlTWVzc2FnZSgi
U2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHRvV0sodXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMzFm
MTA2Zjk5M2I4YjY3NTdhOTY5MjJkNmIwY2Q0YzRjNDQ2ODFhZC4uNWM2YTk2Y2FlMDFmNTkyNTU0
NWI4ZjA2MGVhZmRmMmQ2YmUxYmYyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBwdWJsaWM6
CiAgICAgLy8gRG93bmxvYWRzCiAgICAgYm9vbCBzaG91bGRGaW5pc2hBZnRlckRvd25sb2FkKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRGaW5pc2hBZnRlckRvd25sb2FkOyB9CiAgICAgdm9pZCBz
ZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZExv
Z0Rvd25sb2FkU2l6ZShib29sKTsKIAogICAgIGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZDI4MDJmYjFlNzY2ZGM1ZGU2N2M0NGQxNTc2
NjE2MzJjMzkzMWEzLi42YjhhY2JmZGZiYzRlNjFhNDYxNzg3ZWM3OTdkNjcxMzk2Y2MyY2RmIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ2LDcgKzE0
Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5hdmlnYXRpb25EaWRCZWNvbWVEb3dubG9hZFNo
YXJlZChXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBjCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpk
b3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMLAogICAgICAgICBUZXN0Q29udHJv
bGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsCiAgICAgICAg
IFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSwK
LSAgICAgICAgbnVsbHB0ciwgLy8gZGlkV3JpdGVEYXRhCisgICAgICAgIFRlc3RDb250cm9sbGVy
Ojpkb3dubG9hZERpZFdyaXRlRGF0YSwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2Fk
RGlkRmluaXNoLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsCiAgICAg
fTsKQEAgLTExMDgsNiArMTEwOCw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVU
b0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAgICAgICAg
IGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsKICAgICB9CiAKKyAgICBt
X2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB7IH07CisKICAgICByZXR1cm4gbV9kb25lUmVz
ZXR0aW5nOwogfQogCkBAIC0yMjM3LDYgKzIyMzksOCBAQCBXS1N0cmluZ1JlZiBUZXN0Q29udHJv
bGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tEb3dubG9hZFJl
ZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlzaChXS0Rvd25sb2FkUmVm
KQogeworICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSkKKyAgICAgICAgbV9jdXJyZW50
SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJEb3dubG9hZCBzaXplOiAiLCBtX2Rv
d25sb2FkVG90YWxCeXRlc1dyaXR0ZW4udmFsdWVfb3IoMCksICIuXG4iKSk7CiAgICAgaWYgKG1f
c2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24t
Pm91dHB1dFRleHQoIkRvd25sb2FkIGNvbXBsZXRlZC5cbiIpOwogICAgIG1fY3VycmVudEludm9j
YXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwpAQCAtMjI2OSw2ICsyMjczLDE4IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdLRG93bmxvYWRSZWYsIFdLCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShudWxscHRyLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRl
bikKK3sKKyAgICBpZiAoIW1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB0b3RhbEJ5dGVzV3JpdHRl
bjsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEoV0tEb3du
bG9hZFJlZiBkb3dubG9hZCwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFs
Qnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZG93bmxvYWREaWRXcml0ZURhdGEodG90YWxC
eXRlc1dyaXR0ZW4pOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVy
bWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2hlbiBjcmFzaCBsb2dzIGFy
ZSBiZWluZyBzYXZlZCBvbiBXaW5kb3dzLCBzbwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDVjZDQ5ZmFmMzBkZTc4Y2NlYWNkNWFkMDNjODQ4NmRjNWZjOTFjMTAu
LjQwM2VkYzIzZTg1MGExNDg0YzYxMmQ1OWQ0ZGJkYjA5OTFhMmMxN2IgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKGJvb2wgc2hvdWxkTG9n
KSB7IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyA9IHNob3VsZExvZzsgfQogICAg
IHZvaWQgc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShi
b29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2Fs
bGJhY2tzKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MgPSBz
aG91bGRMb2c7IH0KKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHNob3Vs
ZExvZykgeyBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSA9IHNob3VsZExvZzsgfQogCiAgICAgYm9v
bCBpc0N1cnJlbnRJbnZvY2F0aW9uKFRlc3RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uKSBjb25zdCB7
IHJldHVybiBpbnZvY2F0aW9uID09IG1fY3VycmVudEludm9jYXRpb24uZ2V0KCk7IH0KIApAQCAt
NDczLDcgKzQ3NCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGRvd25sb2FkRGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25zZVJlZiwg
V0tVUkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgYm9vbCBkb3dubG9hZERpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdLVVJMUmVxdWVzdFJlZik7CiAg
ICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V0tEb3dubG9hZFJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7Ci0gICAgCisKKyAgICB2b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcg
bG9uZyB0b3RhbEJ5dGVzV3JpdHRlbik7CisgICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRXcml0
ZURhdGEoV0tEb3dubG9hZFJlZiwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRv
dGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CisKICAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzRGlkVGVy
bWluYXRlKFdLUGFnZVJlZiwgIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQcm9jZXNz
VGVybWluYXRpb25SZWFzb24pOwogCkBAIC02NjMsNiArNjY3LDkgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFsc2UgfTsKIAog
ICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0cnVlIH07CisK
KyAgICBzdGQ6Om9wdGlvbmFsPGxvbmcgbG9uZz4gbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVu
OworICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CmluZGV4IDNkZmFjNWZjMDA5ZTQ5NjU0NDRlNmI0MDkxZGJlZWIyZTIyMWQyYmIuLjcyZmE4MmJi
YzAxMDI5NmYwNGQxMzBlYzliYzZhNDM1N2NiZDBlOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC01MzcsNiArNTM3LDExIEBAIHZvaWQgVGVzdEludm9j
YXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1l
c3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSIp
KSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRMb2dEb3du
bG9hZFNpemUoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiKSkgewogICAgICAgICBXS1N0cmluZ1JlZiB1c2Vy
bmFtZSA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUodG9XVEZTdHJpbmcodXNlcm5h
bWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2MjEwZjVhMzMxNjczNDQ0Y2UxMzUyM2FiYzIwMzIwM2MyY2I1NDlmLi45
OGFhYWM3NzM0YTk1YzQ0ZjEwMmUyZmZkYTJlMmRlMDhkNDM5YjhlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMjEtMTItMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLWJvZHkuaHR0cHMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93
bmxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJl
Y3QtcHJlbG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5OgorCiAyMDIxLTEyLTAz
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtj
c3MtZmxleGJveF0gQWNjb3VudCBmb3IgY2FwdGlvbnMgd2hlbiBmbGV4aW5nIHRhYmxlcyB3aXRo
IHNwZWNpZmllZCBzaXplcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKaW5kZXggZDVjNjYzMGJiNTExZjVmN2FiMjhlZGQy
MWI0MGFhOGZjMzM0NmVmNy4uNjAwMjkyMzlkMzdlMGMyZWZlYTIxYzI1NWRlZjJmYWZmN2JmYjgz
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93
bmxvYWQtd29ya2VyLmpzCkBAIC0xLDMgKzEsMjEgQEAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigi
ZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMo
ImRvd25sb2FkLWJvZHkiKSkgeworICAgICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25z
ZSgiYSBkb3dubG9hZCBib2R5IiwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICJhcHBs
aWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgocmVzcG9uc2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNs
dWRlcygiZG93bmxvYWQtc3RyZWFtIikpIHsKKyAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJl
YWRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHN0YXJ0OiAoY29udHJvbGxlcikgPT4geworICAg
ICAgICAgICAgICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTsKKyAgICAgICAg
ICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoImEgZmlyc3QgY2h1bmss
ICIpKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udHJvbGxlci5lbnF1
ZXVlKGVuY29kZXIuZW5jb2RlKCJ0aGVuIGEgc2Vjb25kIGNodW5rIikpOyB9LCAxMDApOworICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBjb250cm9sbGVyLmNsb3NlKCk7IH0sIDIw
MCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjb25zdCByZXNwb25zZSA9
IG5ldyBSZXNwb25zZShzdHJlYW0sIHsiaGVhZGVycyIgOiBbWyJDb250ZW50LVR5cGUiLCAiYXBw
bGljYXRpb24vYmluYXJ5Il1dfSk7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChl
dmVudC5yZXF1ZXN0LnVybCkpOwogfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYy
ZWJjMmI4NmU2NmJiMzljOWJjMDlkM2RhOTNmNDAzMjQzMWJjZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2Fk
IHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25s
b2FkLWJvZHkiCitEb3dubG9hZCBzaXplOiAxNS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhhZDJkNDgwYTkxZGFhYzFjNmQ0ZDBlZWM4OWVjYzI4N2Y0YmE5YzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rv
d25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2Fk
U2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7Cisg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUp
OworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGF3YWl0IGludGVyY2VwdGVk
RnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMiLCAiL3dv
cmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7CisgICAgd2luZG93LmxvY2F0aW9uID0gIi93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2FkLWJvZHkiOworfQorZG9UZXN0KCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5YTE5ZWJlMzdhMzE0YjNmNTg2MjQ4YTc2NjdmYTUwYzBmMzlmZGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93
bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAi
ZG93bmxvYWQtc3RyZWFtIgorRG93bmxvYWQgc2l6ZTogMzQuCitEb3dubG9hZCBjb21wbGV0ZWQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU3NzNmZTQ2OTY0MDY0MzMwM2JlMDNmYTc0MGRjOGMxY2Jh
ODA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5z
ZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91
bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRG
aW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1J
TUVUeXBlcyh0cnVlKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhd2Fp
dCBpbnRlcmNlcHRlZEZyYW1lKCJyZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29y
a2VyLmpzIiwgIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzLyIpOworICAgIHdpbmRvdy5sb2Nh
dGlvbiA9ICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9kb3dubG9hZC1zdHJlYW0iOworfQor
ZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBkMDhl
Zjg0NmQzMmY2ZWM5MWQ5NDI3M2M5YzI0ZTBmMGYyY2E2MjAyLi45ZTMzM2Q1NjkxZTk5YmJlNWRl
MzMyYjVjYWZiMWU0ZmRlY2EzNzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogRG93bmxv
YWQgc3RhcnRlZC4KIERvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZG93
bmxvYWQtYmluYXJ5LnB5IgorRG93bmxvYWQgc2l6ZTogOS4KIERvd25sb2FkIGNvbXBsZXRlZC4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKaW5kZXgg
OGM5YWRhM2ZjODEyYzM2MDk3YjNkMDM5NDE2NDA5MzVjYjIyZTc0Ni4uNGE1YWE4N2I0ZWMwZDNk
NzNjOTcxNjFlMDYyZmM3ZGM2OGExN2IyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC5odHRwcy5odG1sCkBAIC03LDYgKzcsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICB0ZXN0UnVubmVyLnNldFNob3Vs
ZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rv
d25sb2FkU2l6ZSh0cnVlKTsKICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVk
KCk7CiAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVz
KHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3Qt
cHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRp
cmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmOGFlNWRiZDNh
YTFiZWNmNmUwZDM2ZmExYjFiMmU1MGQ5MTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
ZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2Vz
dGVkIGZpbGVuYW1lICJmZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSIKK0Rv
d25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQzNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1
bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5z
ZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93
bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5
YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1dWlkID0g
dG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2FkPXllcyZuby1mZXRj
aC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2YXIgZnJhbWU7Citjb25zdCBj
aGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0aW9uIHdhaXRVbnRpbEFjdGl2
YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAg
Y2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmlnZ2VyQWN0aXZhdGlvbigpCit7
CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0ZSIpOworfQorCithc3luYyBm
dW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAg
ICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0K
KworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIGlmICghcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAg
ICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
Ii9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29y
a2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAgICBhY3RpdmVXb3JrZXIgPSBy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBw
b3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0
VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAiJnZhbHVlPXVzZS1wcmVsb2Fk
IiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQgaWZyYW1lLCB3aXRoIGFjdGl2
YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5kIHdpbGwgYmUgdGhlIG9uZSB0
byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxvYWQgc2luY2Ugc2VydmljZSB3
b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8vIERvd25sb2FkIHNpemUgc2hv
dWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBwcm9taXNlID0gd2l0aElm
cmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30KK2RvVGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVjZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdn
ZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5Igor
RG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ1ZmZkZmVjNDJiYzMyMTIwNzAzMmM5MWY4NDQ4N2IyMDRiZTUxNmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEs
NjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvY29t
bW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNo
b3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExv
Z0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlz
aGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5
cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwor
dmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJnRva2VuPSIgKyB1dWlkOwor
dmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCitmdW5j
dGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFjdGl2YXRpbmciKQorICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdHJp
Z2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiYWN0aXZh
dGUiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtl
clByb2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwg
KCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAg
ICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgfQorCisg
ICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29y
a2VyLnBvc3RNZXNzYWdlKHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0p
OworCisgICAgYXdhaXQgd2FpdFVudGlsQWN0aXZhdGluZygpOworCisgICAgZmV0Y2godXJsICsg
IiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisKKyAgICAvLyBMb2Fk
IGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28gcHJlbG9hZCB3aWxsIHN0YXJ0IGFu
ZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUgZG93bmxvYWRlZCwgdGhyb3VnaCB0aGUgc2VydmljZSB3
b3JrZXIuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxv
YWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2Vy
QWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1z
ZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwppbmRl
eCBkMDRhNDlhNzhjZDg5MjlhNGZkMGRiNGFiMGNlYjgwMWEwMTk1MGU4Li42ODUwZTAxZGE5ZjFi
NjZmY2NkZjNhOGYxNzg5NjExNzQzYjgxYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIu
anMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzCkBAIC0yMyw1ICsyMyw3IEBAIG9uYWN0aXZhdGUg
PSAoZXZlbnQpID0+IHsKIH0KIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVu
dCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygibm8tZmV0Y2gtZXZl
bnQtaGFuZGxpbmciKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZl
dGNoKGV2ZW50LnJlcXVlc3QpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2Fk
LXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJj
ZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKaW5kZXggMjA2NzgzNmY1
NDE3MDNkZTg0ZjA4YjhlYjNlNmNjOGMzMzgxMzlmZS4uOWE5YWZjZGI0NjUzZmY2N2U1ZDNkYzY1
NWJmOGI5OTRlZWM3NzkwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CkBAIC0zMSw1ICszMSwxMCBAQCBk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgaWYgbm90IHZhbHVlOgogICAgICAgICB2
YWx1ZSA9IGIibm90aGluZyIKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRy
b2wiLCBiIm5vLWNhY2hlIikKKworICAgIGlmIGIiZG93bmxvYWQiIGluIHJlcXVlc3QuR0VUOgor
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIiYXBwbGljYXRp
b24vYmluYXJ5IikKKyAgICAgICAgcmV0dXJuIHZhbHVlLmRlY29kZSgpCisKICAgICByZXNwb25z
ZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIikKICAgICByZXR1cm4g
IjxodG1sPjxib2R5PjxzY3JpcHQ+d2luZG93LnZhbHVlID0gJyVzJzs8L3NjcmlwdD48L2JvZHk+
PC9odG1sPiIgJSB2YWx1ZS5kZWNvZGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446336</attachid>
            <date>2021-12-08 01:58:24 -0800</date>
            <delta_ts>2021-12-09 04:50:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211208105823.patch</filename>
            <type>text/plain</type>
            <size>99328</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uOTI5MDNiNzE0YzRmZWZjZTQyN2FkZTIwNjhlZjM1
NmI1YjNkMjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wOCAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4NjU1Nik6IERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBpT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzM2NTU2Yzk5ZGQxNzUxZmQ4ZjAzZWJmMjU2MmExZTYwYmZhMWQzNy4uZjI2NGFl
ZDJkMTdjZTVlNDM3MWQyMWM4NTkxNDYzM2JhMTY1MjllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MiBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIGNsYXNzIGFzIGEgTmV0d29ya0RhdGFU
YXNrIHdob3NlIHB1cnBvc2UgaXMgdG8gZG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgYSByZXNwb25z
ZSBnaXZlbiBmcm9tIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBBZGQgYSB3YXkgdG8gY29udmVy
dCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGludG8gZG93bmxvYWRzOgorICAgICAgICAtIElmIGEg
cHJlbG9hZCBpcyBvbmdvaW5nIGFuZCBjYW4gYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiwgdXNlIHRo
aXMgcHJlbG9hZCBhcyB0aGUgZG93bmxvYWQgTmV0d29ya0xvYWQuCisgICAgICAgIC0gSWYgYSBw
cmVsb2FkIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
IGFuZCBhIGNvcnJlc3BvbmRpbmcgTmV0d29ya0xvYWQgdG8gc3RhcnQgZG93bmxvYWRpbmcgdGhl
IHNlcnZpY2Ugd29ya2VyIHJlc3BvbnNlIGRhdGEuCisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLCB0aGUgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudCB3aWxsIGJlIG5vdGlmaWVkIHRvIHN0YXJ0IHNlbmRpbmcgcmVzcG9uc2UgZGF0YSB1c2lu
ZyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrCisgICAgICAgIGluc3RlYWQgb2YgU2VydmljZVdv
cmtlckZldGNoVGFzayBtZXNzYWdlcy4gVGhpcyBhbGxvd3MgY2FuY2VsbGluZyB0aGUgU2Vydmlj
ZVdvcmtlckZldGNoVGFzayB3aXRob3V0IGFueSBpc3N1ZS4KKworICAgICAgICBOb3RlIHRoYXQg
dGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lIGlzIG5vdCBhdWdtZW50ZWQ6IGlmIHRoZSBzZXJ2
aWNlIHdvcmtlciBleGl0cyBkdWUgdG8gYWxsIGl0cyBjbGllbnRzIGJlaW5nIGNsb3NlZCwgdGhl
IGRvd25sb2FkIHdpbGwgZmFpbC4KKworICAgICAgICBJbmNyZWFzZSB1bmlmaWVkIGJ1aWxkIGZp
bGVzIHRvIDExMi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHA6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2g6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3Nh
Z2VNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aElmTWVzc2Fn
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVz
dFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRl
c3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJl
YW1NZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0
dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6CisKIDIwMjEtMTItMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFs
IHN1cHBvcnQgZm9yIGZpbmQtaW4tcGFnZSBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKaW5kZXgg
ZWIyNjZiNmMwN2U2NzNkOTE2NmNhY2U2YjMzOTE5ZDgwZWJiZjMxYy4uZGU5ZTIzMGY5YmRiOTlh
NWU4Mzg3ZGZkOTYwM2FlYzVjYWEzZjAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGUoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRGZXRj
aFRvRG93bmxvYWQoKSA9IDA7CiB9OwogCiB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xp
ZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJl
ZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmNwcAppbmRleCBiM2NmMmM3M2IyMjM5MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRi
Li5kYjZjOTNiOGJlOTFiOWI5MjI3MTA5NDc5OWQwZGRjM2Y2NDgyZGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTI0Miw2ICsyNDIsMjAgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OmNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgY29ubmVjdGkKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0K
IAorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udmVydEZldGNoVG9Eb3dubG9h
ZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VX
b3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQg
JWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKworICAgIGF1dG8gY2xpZW50ID0g
bV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIpKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbY2xp
ZW50ID0gUmVmIHsgKmNsaWVudCB9XSAoYXV0byYpIHsKKyAgICAgICAgY2xpZW50LT5jb252ZXJ0
RmV0Y2hUb0Rvd25sb2FkKCk7CisgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7
Cit9CisKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb250aW51ZURpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBjbGll
bnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLmdldChzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oCmluZGV4IDBhMzM3OTI0NDgwZWJmODI2NzUzZWY1NDFhM2YxY2Q0YzY5MjVmNGEuLjAxYjNh
ZDA0OTE1ZDRiZTI3YjAxYmNmZmRjNmIwY2ZiMjA4ZmMwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0
JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2Fu
Y2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGIxZGJiYjU1NDlmN2EwNTFiY2NiMGRiZTJmMjM5OWFh
YmYxYWI5MjEuLjI1OWU0NzJiNTdkMGM2NGZmNzQzNzlmMmM5MjljODcyY2ZlZmUwODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dApAQCAtMTk3LDYgKzE5Nyw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5f
RklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbAogICAgIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCiAgICAgTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA1YmE2NGI0NGJlMWU1Nzc1
MDg4ZmM2ZTkwNTU5OWM3Y2Q1NzgzY2QzLi40MDRhNzIyYzc2OTAwMDBhMGYwM2I5YTgwMGRmYzVi
N2ExZTMwYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC04Nyw2ICs4Nyw3IEBAICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyMmRhN2I3NzcwODUwNzUwNmY1MThm
ZjQyOGYwNzY1NjFiZGVmYWJhLi4zNjdlMGFjMTBmOGM1MGMwZjNmNGMxODUxMzE4ZWRiNTY1MWFh
ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKQEAgLTM5Niw2ICszOTYsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25s
b2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25s
b2FkVGFza01lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDY4NGZhY2Q1ZDc2ZmMyNGEyN2IwN2FmNDcwY2MzZjlhM2Nk
MWMwNjAuLmIzYjcxOTc3YjRhMGFlNDFhMmI2YzBkNzVkMzczN2YwOTM5YTczMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyIFwKIAlOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbCBcCiAJTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24gXAorCU5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzayBcCiAJTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIFwKIAlOZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBc
CiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDI5MWNjOTg5MmU4MTAyN2Q5Y2FlZDFkOWRiNzA2MWQ3M2U2NzQxNzAu
LmI4ODBiNzZiNzMwZWU0NTljM2YxOWRjMjVmZWZhMjFhMTAzZTY2NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC02OTUsOCArNjk1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHN0ZDo6b3B0
aW8KIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICAvLyBJ
biBjYXNlIGEgcmVzcG9uc2UgaXMgc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIsIHdlIGRvIG5v
dCBoYXZlIHlldCB0aGUgYWJpbGl0eSB0byBjb252ZXJ0IHRoZSBsb2FkLgotICAgIGlmICghbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VS
ZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgaWYgKCFtYWluUmVzb3VyY2VM
b2FkSWRlbnRpZmllcikgewogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFn
ZXIoKS5zdGFydERvd25sb2FkKG1fc2Vzc2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0LCBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggYmFjMDIyYWI0
NTQzMGY2NTFiMTg5YWMwMTIwN2EwNjA2MDhjMTY3MS4uNmRmMTQxMDczNmFiYTJmMmQ5YTE5NjE1
NmMwYjFiYWZhOGU3MDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDEzIEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChO
ZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBCbG9iUmVnaXN0cnlJbXBsKiBibG9iUmVnaXN0CiAg
ICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKG5ldHdvcmtTZXNzaW9uLCAq
dGhpcywgbV9wYXJhbWV0ZXJzKTsKIH0KIAorTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdv
cmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29u
c3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50
Jik+JiBjcmVhdGVUYXNrKQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9uZXR3b3Jr
UHJvY2VzcyhuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpKQorICAgICwgbV90YXNrKGNy
ZWF0ZVRhc2soKnRoaXMpKQoreworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydCgpCiB7CiAg
ICAgaWYgKCFtX3Rhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmgKaW5kZXggYzM3NzNjOTg3ODU1M2NlNTM0ZDA1NGFiZmZkZGViYjI5ZWUwODRkMi4uYjkyZjlj
NjFlMTM1OTBjNDFjYmMxZDhiMzgyOGQzYWNjYjc1MWIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBOZXR3b3Jr
TG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMm
JiwgTmV0d29ya1Nlc3Npb24mKTsKKyAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYs
IE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4o
TmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+Jik7CiAgICAgfk5ldHdvcmtMb2FkKCk7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTUwY2Y0YWJiZTU2NGU0Y2EzZmI3MjZjYWE5
ZDU2OWM1NGIwOWQ3Mi4uYjg3YWQ0ZDNjMWNhMDMxMGRiMjNhNzkyMDg5ZTVkMTg3YWM4Zjk0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtNDg0LDYgKzQ4NCwxMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNv
dQogewogICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29udmVydFRvRG93bmxvYWQ6IChkb3dubG9h
ZElEPSUiIFBSSXU2NCAiLCBoYXNOZXR3b3JrTG9hZD0lZCwgaGFzUmVzcG9uc2VDb21wbGV0aW9u
SGFuZGxlcj0lZCkiLCBkb3dubG9hZElELnRvVUludDY0KCksICEhbV9uZXR3b3JrTG9hZCwgISFt
X3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQorICAgIGlmIChtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2sgJiYgbV9zZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLT5jb252ZXJ0VG9Eb3dubG9hZChtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCku
ZG93bmxvYWRNYW5hZ2VyKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291
cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsK
ICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigp
LnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklEKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIG1fcGFyYW1l
dGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTkxYzM2MjM4M2I3YTQ1MDU3
NTBlYzYwNTBiY2UwODE2NTgzNmJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3Bw
CkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKworI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5o
IgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG93bmxvYWRJRCBkb3du
bG9hZElEKQorICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwg
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlLCBmYWxzZSwgZmFsc2UpCisgICAgLCBt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQorICAgICwg
bV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKKyAgICAs
IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
CisgICAgLCBtX2ZldGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpCisgICAgLCBtX2Rvd25s
b2FkSUQoZG93bmxvYWRJRCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3Moc2VydmljZVdvcmtlckNv
bm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAsIG1fd3JpdGVRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiU2VydmljZVdvcmtlckRvd25sb2FkVGFzayIpKQoreworICAgIHNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uLnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQorCitTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjp+U2VydmljZVdvcmtlckRvd25sb2FkVGFzaygpCit7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6Y2xvc2UoKQoreworICAgIGlmIChtX3NlcnZpY2VX
b3JrZXJDb25uZWN0aW9uKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT51bnJl
Z2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPiBi
b29sIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2Fn
ZSYmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24gPyBt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5pcGNDb25uZWN0aW9uKCkuc2VuZChzdGQ6OmZvcndh
cmQ8TWVzc2FnZT4obWVzc2FnZSksIDApIDogZmFsc2U7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzazo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rp
b24pCit7CisgICAgbV93cml0ZVF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildKCkgbXV0YWJsZSB7CisgICAg
ICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzazo6Y2FuY2VsKCkKK3sKKyAgICBtX3dyaXRlUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0geworICAgICAgICBpZiAobV9kb3dubG9hZEZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICAgICAg
RmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsKKyAgICAgICAgICAgIG1fZG93
bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICAg
ICAgfQorICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKG1fcGVuZGluZ0Rvd25sb2FkTG9j
YXRpb24pOworICAgIH0pOworCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b24gPSBudWxscHRyOworICAgIH0KKworICAgIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IG1fc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVu
dGlmaWVyIH0pOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgY2xvc2Uo
KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpyZXN1bWUoKQoreworICAg
IG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKK3sKKyAgICBjYW5jZWwoKTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihj
b25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit7CisgICAgaWYgKCFu
ZXR3b3JrU2Vzc2lvbigpKSB7CisgICAgICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSgpIG11dGFibGUgeworICAgICAgICAgICAg
ZGlkRmFpbERvd25sb2FkKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgTmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihmaWxlbmFt
ZSwgeyB9LCBhbGxvd092ZXJ3cml0ZSk7CisKKyAgICBBU1NFUlQoIW1fc2FuZGJveEV4dGVuc2lv
bik7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdU
Rk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpOworICAgIGlmIChtX3NhbmRib3hFeHRlbnNp
b24pCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+Y29uc3VtZSgpOworCisgICAgbV93cml0
ZVF1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGFs
bG93T3ZlcndyaXRlICwgZmlsZW5hbWUgPSBmaWxlbmFtZS5pc29sYXRlZENvcHkoKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKGFsbG93T3ZlcndyaXRlICYmIEZpbGVTeXN0ZW06OmZpbGVFeGlz
dHMoZmlsZW5hbWUpKQorICAgICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShmaWxlbmFt
ZSk7CisKKyAgICAgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3Bl
bmRpbmdEb3dubG9hZExvY2F0aW9uLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsK
KyAgICAgICAgaWYgKG1fZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpCisgICAgICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsKKyAgICB9KTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzdGFydCgpCit7CisgICAgQVNTRVJU
KG1fc3RhdGUgIT0gU3RhdGU6OkNvbXBsZXRlZCk7CisKKyAgICBpZiAoIXNlbmRUb1NlcnZpY2VX
b3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb252ZXJ0RmV0
Y2hUb0Rvd25sb2FkIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSkpIHsKKyAgICAgICAgbV93cml0ZVF1
ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAg
ICBhdXRvJiBtYW5hZ2VyID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCk7Cisg
ICAgYXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8RG93bmxvYWQ+KG1hbmFnZXIsIG1fZG93bmxv
YWRJRCwgKnRoaXMsICpuZXR3b3JrU2Vzc2lvbigpKTsKKyAgICBhdXRvKiBkb3dubG9hZFB0ciA9
IGRvd25sb2FkLmdldCgpOworICAgIG1hbmFnZXIuZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2so
bV9kb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CisgICAgZG93bmxvYWRQdHItPmRpZENy
ZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24pOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3sKKyAgICBBU1NFUlQo
IWlzTWFpblJ1bkxvb3AoKSk7CisgICAgaWYgKG1fZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06
OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybjsKKworICAgIHNpemVf
dCBieXRlc1dyaXR0ZW4gPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2Rvd25sb2FkRmlsZSwg
ZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gZGF0
YS5zaXplKCkpIHsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIGJ5dGVzV3JpdHRlbl0geworICAgICAgICBtX2Rvd25sb2FkQnl0ZXNXcml0
dGVuICs9IGJ5dGVzV3JpdHRlbjsKKyAgICAgICAgaWYgKGF1dG8qIGRvd25sb2FkID0gbV9uZXR3
b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJ
RCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZURhdGEoYnl0ZXNXcml0dGVuLCBt
X2Rvd25sb2FkQnl0ZXNXcml0dGVuLCAwKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisg
ICAgLy8gRklYTUU6IFN1cHBvcnQgd3JpdGluZyBmb3JtRGF0YSBpbiBkb3dubG9hZHMuCisgICAg
UkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s6OmRpZFJlY2VpdmVGb3JtRGF0YSBub3QgaW1wbGVtZW50ZWQiKTsKKyAgICBkaWRGYWlsRG93
bmxvYWQoKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGaW5pc2go
KQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIEZpbGVTeXN0ZW06OmNs
b3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSB7CisgICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6Q29tcGxldGVkOworICAgICAgICBjbG9zZSgpOworCisgICAgICAgIGlmIChtX3NhbmRi
b3hFeHRlbnNpb24pIHsKKyAgICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tlKCk7
CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBudWxscHRyOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGF1dG8gZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1h
bmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgICAgIGRvd25s
b2FkLT5kaWRGaW5pc2goKTsKKworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBt
X2NsaWVudC0+ZGlkQ29tcGxldGVXaXRoRXJyb3IoeyB9KTsKKyAgICB9KTsKK30KKwordm9pZCBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGYWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBkaWRGYWlsRG93bmxvYWQo
V1RGTW92ZShlcnJvcikpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRp
ZEZhaWxEb3dubG9hZChzdGQ6Om9wdGlvbmFsPFJlc291cmNlRXJyb3I+JiYgZXJyb3IpCit7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgaWYgKG1fZG93bmxvYWRGaWxlICE9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAgICAgICAgRmlsZVN5
c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsKKyAgICAgICAgbV9kb3dubG9hZEZpbGUg
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAgIH0KKyAgICBGaWxl
U3lzdGVtOjpkZWxldGVGaWxlKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24pOworCisgICAgY2Fs
bE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBlcnJv
ciA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGVycm9yKSldIHsKKyAgICAgICAgaWYgKG1fc3Rh
dGUgPT0gU3RhdGU6OkNvbXBsZXRlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBt
X3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgY2xvc2UoKTsKKworICAgICAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24t
PnJldm9rZSgpOworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gcmVzb3VyY2VFcnJvciA9IGVycm9yLnZhbHVlX29yKGNh
bmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgpKSk7CisgICAgICAgIGlmIChhdXRvIGRvd25sb2Fk
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5n
RG93bmxvYWRJRCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlkRmFpbChyZXNvdXJjZUVycm9y
LCBJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHJlc291cmNlRXJyb3IpOworICAg
IH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFjODk3NmJhYjg1MTU5NmE3MGU3NzBmOTVkZWEyZmI3NzBhYTMxM2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkRv
d25sb2FkLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtR
dWV1ZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0xvYWQ7CitjbGFzcyBOZXR3b3Jr
UHJvY2VzczsKK2NsYXNzIFNhbmRib3hFeHRlbnNpb247CitjbGFzcyBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb247CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgOiBwdWJs
aWMgTmV0d29ya0RhdGFUYXNrLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCogbmV3IFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2soc2Vzc2lvbiwgY2xpZW50LCBjb25uZWN0aW9uLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRl
bnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCkpOyB9CisgICAgflNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2soKTsKKworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoSWRlbnRpZmllcjsgfQorICAgIHZvaWQgY29udGV4
dENsb3NlZCgpIHsgY2FuY2VsKCk7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9w
KCkgeyBjYW5jZWwoKTsgfQorCisgICAgdXNpbmcgTmV0d29ya0RhdGFUYXNrOjpyZWY7CisgICAg
dXNpbmcgTmV0d29ya0RhdGFUYXNrOjpkZXJlZjsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6
OndlYWtQdHJGYWN0b3J5OworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6V2Vha1ZhbHVlVHlw
ZTsKKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNz
aW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgRG93bmxvYWRJRCk7CisKKyAgICAvLyBJUEMgTWVzc2Fn
ZQorICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29u
c3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkRmluaXNoKCk7CisgICAg
dm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisKKyAgICAvLyBOZXR3b3Jr
RGF0YVRhc2sKKyAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmlu
YWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCkgZmluYWw7CisgICAgU3RhdGUgc3Rh
dGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRQZW5kaW5n
RG93bmxvYWRMb2NhdGlvbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiwgYm9vbCAvKmFsbG93T3ZlcndyaXRlKi8pIGZpbmFsOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpc3BhdGNoVG9U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgcmVm
TWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZNZXNzYWdl
UmVjZWl2ZXIoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
c3NhZ2U+IGJvb2wgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYpOworICAgIHZvaWQgZGlk
RmFpbERvd25sb2FkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4mJiA9IHsg
fSk7CisgICAgdm9pZCBjbG9zZSgpOworCisgICAgV2Vha1B0cjxXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24+IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKKyAgICBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI7CisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIG1fZmV0Y2hJZGVudGlmaWVyOwor
ICAgIERvd25sb2FkSUQgbV9kb3dubG9hZElEOworICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9u
ZXR3b3JrUHJvY2VzczsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0
ZW5zaW9uOworICAgIFJlZjxXb3JrUXVldWU+IG1fd3JpdGVRdWV1ZTsKKyAgICBGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9kb3dubG9hZEZpbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlIH07CisgICAgaW50NjRfdCBtX2Rvd25sb2FkQnl0ZXNXcml0dGVu
IHsgMCB9OworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6U3VzcGVuZGVkIH07Cit9OworCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
M2JmYjdjYzMxMDk3OTljYzgwMDFiYmE3MWQ4OWMwZjZmMmQ5MmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMyIEBACisjIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisK
K21lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgTm90UmVmQ291bnRlZCB7Cisg
ICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIERpZFJlY2VpdmVE
YXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IGRhdGEpCisgICAgRGlkRmluaXNoKCkKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCBkNzg3
YjUxMGFkNzgwMWI4NzZmZGFmMThiY2VhNjBhMDY3NzQ3ZDdhLi40NzdlODgyNTFiYzkwOTFkYTE0
YmEyYTJjMzNiMzc0M2E5ZTMyNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRj
aFRhc2suY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgpA
QCAtMzAyLDcgKzMwMywxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbm5vdEhh
bmRsZSgpCiAKIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y2FuY2VsRnJvbUNsaWVudCgp
CiB7Ci0gICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDoiKTsKKyAgICBT
V0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5jZWxGcm9tQ2xpZW50OiBpc0RvbmU9JWQiLCBtX2lzRG9u
ZSk7CisgICAgaWYgKG1faXNEb25lKQorICAgICAgICByZXR1cm47CisKICAgICBzZW5kVG9TZXJ2
aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2Vs
RmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KTsKIH0KIApAQCAtNDE2LDYgKzQyMCwzNiBAQCBO
ZXR3b3JrU2Vzc2lvbiogU2VydmljZVdvcmtlckZldGNoVGFzazo6c2Vzc2lvbigpCiAgICAgcmV0
dXJuIG1fc3dTZXJ2ZXJDb25uZWN0aW9uID8gbV9zd1NlcnZlckNvbm5lY3Rpb24tPnNlc3Npb24o
KSA6IG51bGxwdHI7CiB9CiAKK2Jvb2wgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y29udmVydFRv
RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgaWYgKG1fcHJlbG9hZGVyICAmJiAhbV9wcmVsb2FkZXItPmlzU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbV9w
cmVsb2FkZXItPmNvbnZlcnRUb0Rvd25sb2FkKG1hbmFnZXIsIGRvd25sb2FkSUQsIHJlcXVlc3Qs
IHJlc3BvbnNlKTsKKworICAgIGF1dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCk7CisgICAg
aWYgKCFzZXNzaW9uIHx8ICFtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX2lzRG9uZSA9IHRydWU7CisKKyAgICAvLyBGSVhNRTogV2UgbWln
aHQgd2FudCB0byBrZWVwIHRoZSBzZXJ2aWNlIHdvcmtlciBhbGl2ZSB1bnRpbCB0aGUgZG93bmxv
YWQgZW5kcy4KKyAgICBSZWZQdHI8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4gc2VydmljZVdv
cmtlckRvd25sb2FkVGFzazsKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXJEb3dubG9hZExvYWQgPSBt
YWtlVW5pcXVlPE5ldHdvcmtMb2FkPihtX2xvYWRlciwgKnNlc3Npb24sIFsmXShhdXRvJiBjbGll
bnQpIHsKKyAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2FkVGFzayA9ICBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpjcmVhdGUoKnNlc3Npb24sIGNsaWVudCwgKm1fc2VydmljZVdvcmtlckNv
bm5lY3Rpb24sIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBkb3dubG9hZElEKTsKKyAgICAg
ICAgcmV0dXJuIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY29weVJlZigpOworICAgIH0pOwor
CisgICAgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciA9IFtzZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrID0gV1RGTW92ZShzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
KV0oYXV0byBwb2xpY3kpIHsKKyAgICAgICAgaWYgKHBvbGljeSAhPSBQb2xpY3lBY3Rpb246OkRv
d25sb2FkKSB7CisgICAgICAgICAgICBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLT5zdG9wKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2VydmljZVdvcmtlckRv
d25sb2FkVGFzay0+c3RhcnQoKTsKKyAgICB9OworCisgICAgbWFuYWdlci5jb252ZXJ0TmV0d29y
a0xvYWRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIFdURk1vdmUoc2VydmljZVdvcmtlckRvd25sb2Fk
TG9hZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNl
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRl
ZiBTV0ZFVENIX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aAppbmRleCBhYmE5MDU3MmYwNTFlZWQ5MGYyZjdhOWQ1MzUwNWUxYTRmNGU5OGMyLi5jMzQ1ODAy
NjdmYjMyNjllNmRjYmRjZWZjMzRkMDY4MmM2YTA4ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWRJ
RC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLmg+CkBAIC01NCw2ICs1NSw3IEBAIGNsYXNzIE5ldHdvcmtMb2Fk
TWV0cmljczsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBEb3dubG9hZE1hbmFnZXI7
CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNs
YXNzIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOwpAQCAtODUsNiArODcsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjYW5ub3RIYW5kbGUoKTsKICAgICB2b2lkIGNvbnRleHRDbG9zZWQo
KTsKIAorICAgIGJvb2wgY29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxv
YWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOworCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgU2hvdWxkU2V0U291
cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3Bv
bnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAppbmRleCA3MWUwY2Y2YzZkYzdi
ZWE1MjJjOTA2MDA1NTVmNTcyMTYxYzNjMmY0Li4wMWMxZTI1NjRhODYxMjJlYjY3MWUwZjZhODY5
ZmE5ODdiZTI2ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9h
ZC5oIgpAQCAtMjQyLDYgKzI0MywxNSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZGVyOjp3YWl0Rm9yQm9keShCb2R5Q2FsbGJhY2smJiBjYWxsYmFjaykKICAgICBtX2JvZHlD
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXImIG1hbmFn
ZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sK
KyAgICBpZiAoIW1fbmV0d29ya0xvYWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1h
bmFnZXIuY29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBzdGQ6OmV4Y2hh
bmdlKG1fbmV0d29ya0xvYWQsIG51bGxwdHIpLCBXVEZNb3ZlKG1fcmVzcG9uc2VDb21wbGV0aW9u
SGFuZGxlciksIHsgfSwgcmVxdWVzdCwgcmVzcG9uc2UpOworICAgIHJldHVybiB0cnVlOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
LmgKaW5kZXggMWU3OGMyY2VmYTE1NDg0MTA0MDYwZjNiMTlkYzUwZTZjYjhmMWViNC4uOGE0ZjNj
ZGM0YTQxNjBlOWFiNzViNzY1NjFmNDIxZWQzYzdlNWY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9u
UHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgICJEb3dubG9hZElELmgi
CiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENs
aWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgpAQCAtMzksNiArNDAs
NyBAQCBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3M7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBEb3dubG9hZE1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrTG9hZDsKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uOwogCkBAIC02MCw2ICs2Miw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIG1f
bmV0d29ya0xvYWRNZXRyaWNzOyB9CiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9u
UHJlbG9hZEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmVuYWJsZWQ7IH0KIAorICAg
IGJvb2wgY29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOworCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQg
ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBs
b25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDhiMjEzODUyZDBmMTE3ZGVm
ODE5ZDQ1MmRiN2I4ZmNmNDllMzc1NmIuLmYwYTg5Njc1Y2MxNDQzNzA4YTBiNjhhYzkzMWNlNzdm
ZDI1YzQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTU5LDYgKzYwLDEwIEBAIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6fldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpCiAg
ICAgZm9yIChhdXRvJiBmZXRjaCA6IGZldGNoZXMudmFsdWVzKCkpCiAgICAgICAgIGZldGNoLT5j
b250ZXh0Q2xvc2VkKCk7CiAKKyAgICBhdXRvIGRvd25sb2FkcyA9IFdURk1vdmUobV9vbmdvaW5n
RG93bmxvYWRzKTsKKyAgICBmb3IgKGF1dG8mIGRvd25sb2FkIDogZG93bmxvYWRzLnZhbHVlcygp
KQorICAgICAgICBkb3dubG9hZC0+Y29udGV4dENsb3NlZCgpOworCiAgICAgaWYgKG1fc2VydmVy
ICYmIG1fc2VydmVyLT5jb250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lz
dHJhYmxlRG9tYWluKCkpID09IHRoaXMpCiAgICAgICAgIG1fc2VydmVyLT5yZW1vdmVDb250ZXh0
Q29ubmVjdGlvbigqdGhpcyk7CiB9CkBAIC0xOTcsNiArMjAyLDE5IEBAIHZvaWQgV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNo
VGFzayYgdGFzCiAgICAgbV9vbmdvaW5nRmV0Y2hlcy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZp
ZXIoKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZWdpc3Rl
ckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgQVNTRVJU
KCFtX29uZ29pbmdEb3dubG9hZHMuY29udGFpbnModGFzay5mZXRjaElkZW50aWZpZXIoKSkpOwor
ICAgIG1fb25nb2luZ0Rvd25sb2Fkcy5hZGQodGFzay5mZXRjaElkZW50aWZpZXIoKSwgdGFzayk7
CisgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgJnRhc2ssIHRhc2suZmV0Y2hJZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQg
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRG93bmxvYWQoU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzayYgdGFzaykKK3sKKyAgICBtX29uZ29pbmdEb3dubG9hZHMucmVt
b3ZlKHRhc2suZmV0Y2hJZGVudGlmaWVyKCkpOworICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9u
KCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRhc2suZmV0Y2hJZGVudGlmaWVyKCku
dG9VSW50NjQoKSk7Cit9CisKIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdAogewogICAg
IHJldHVybiBtX2Nvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCA0YTBiMTUzNzFm
Zjk2NzE1OWRmZTY2MTI1OGU0NTU3NmU3NTIxMTBkLi4zMzY1OGM1NGMxNGZhNGE0NDRiNzQzNmRk
OTBiMDg1OWEyNDJiYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlckRvd25sb2FkVGFzay5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9T
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaD4KQEAgLTc0LDggKzc1LDExIEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgcmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJik7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYpOworICAgIHZvaWQg
cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOwogCiAgICAgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdDsKKyAg
ICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24u
bmV0d29ya1Byb2Nlc3MoKTsgfQogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
cgpAQCAtMTAzLDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBXZWFrUHRyPFdlYkNvcmU6OlNXU2VydmVyPiBt
X3NlcnZlcjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2Vha1B0cjxT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hlczsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2Vha1B0cjxTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
Pj4gbV9vbmdvaW5nRG93bmxvYWRzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUg
fTsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CiAgICAgc2l6
ZV90IG1fcHJvY2Vzc2luZ1B1c2hFdmVudHNDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5jcHAKaW5kZXggZWViNjA0NWZhODMyYTk0ODMzYWVmOTVkZTMzNTJmNzVjZTNmNDRjMy4u
NmY3ZGVmZDA1MzBlNTcxNWUxNTU0ZWYzMTY2ZDlmMmZlYWUwODQ5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5
cGUuaCIKICNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2luY2x1ZGUgPHd0
Zi9TY29wZS5oPgorI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg+
CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnREZWNvZGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQmFzZTY0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
dW5pZmllZC1zb3VyY2VzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZp
ZWQtc291cmNlcy5zaAppbmRleCBiNmQ0MGFkOWU5NTQ3YmQ0MGRlODVjOWM4NWEzNWMxZTI1Y2Rm
MTkxLi4yYTNkNmI1ZWViMjQxNDAxYzgwZWEzYmVkODIzODJkMDM1NjUyMzY0IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKQEAgLTE0
LDcgKzE0LDcgQEAgaWYgWyAteiAiJHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4KICAgICBm
aQogZmkKIAotVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0xMTEKK1VuaWZpZWRTb3VyY2VDcHBG
aWxlQ291bnQ9MTE1CiBVbmlmaWVkU291cmNlTW1GaWxlQ291bnQ9ODAKIAogaWYgWyAkIyAtZXEg
MCBdOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA5
NDJjNzYxZDM2NzVkOWNkYWRjZjlkYTFkNDVlYjkzYjk4MjEwYjI3Li45NGNmZDkwMGMzMDRlOTU2
NzUxZmMxYjAyOGZlYWMzZTY0MTkyMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTExMjYsNyArMTEyNiw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hh
bmRsZXIocmVjZWl2ZXIpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25u
ZWN0aW9uLmNvbm5lY3Rpb24oKS5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicp
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicp
Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhf
TUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3Jp
cHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xu
JykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6
OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCiAgICAgZWxpZiBhc3luY19t
ZXNzYWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0Vf
QVRUUklCVVRFKSBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0FTWU5DX0RJU1BBVENI
X01FU1NBR0VfQVRUUklCVVRFKToKICAgICAgICAgcmVjZWl2ZV92YXJpYW50ID0gcmVjZWl2ZXIu
bmFtZSBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUp
IGVsc2UgJycKQEAgLTExNDksNyArMTE0OSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRs
ZXIocmVjZWl2ZXIpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0
aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKVxuJykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKLSAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRs
ZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1l
c3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJ31cbicpCiAKICAgICBpZiBub3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1fQVRU
UklCVVRFKSBhbmQgKHN5bmNfbWVzc2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5U
U19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVURSkpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4
ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDU2NDk2ZGRiYTVlYTQ0MjRkNDJlMWZj
ZjVjMjU2MzM4ZWQyODRlMmYuLjM4NDFmYWYzMTc1NjFjYzJjYjNhNDI4NWFmMzY1M2ZmNGMyMjdj
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjoKICAgICBpZiAoY29u
bmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNj
cmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2Ug
JXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aENWUGl4ZWxCdWZm
ZXI6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggY2Fi
NTU5ZjZlNTdjODU3YjkzNDM3NWVhYmU1OWE3YmI0OWFlYWI0NC4uYWFjNmJiMzVjOGUxOGI5NzZi
YTE2ODg1MWFmNGZmNTIzOWNhNTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3Nh
Z2VSZWNlaXZlci5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBUZXN0V2l0aElmTWVzc2FnZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY28K
ICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNT
RVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIg
UFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3Rp
bmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5k
bGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVz
c2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCmlu
ZGV4IGE5YjA3ODljNTlhYTlhNGU1YmJiMjE1OWE1ZDFlYzAzZTU4NjcyNWMuLjI0NTRiM2RhZTY4
ZDBkNDRlMDc1MzdmYTNlYjgyNTMwNmU3YTQ4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURh
dGFNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgVGVzdFdpdGhJbWFn
ZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5n
KCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wg
VGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCmluZGV4IGQxYWM2MmI3YTY1MmNmNWNjM2FiMTk4ZGY2ODA4YjdkOGY0
ZjcyMmQuLmM4OWY0Nzc4OTE2YTk0NTliN2U4ZWE3ZDEzODUwMWQwYzg1ZTk2ZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNl
aXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1
LDcgKzEzNSw3IEBAIHZvaWQgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlKElQQzo6Q29ubmVjCiAgICAgaWYgKGNvbm5lY3Rpb24u
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRp
ZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRI
X01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24o
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUi
IFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlk
UmVjZWl2ZVN5bmNUZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKaW5kZXggMTk5ZjNjMzFmNWMwNGRjOWI4ZjdhNzhjMjM1MjU1MTExNGM4MzQ0MS4uNTM2
MzgyMzhjM2EzNmM0NDRjNDlmOTJlYmNkYzFhMDY5YzM5ZjYyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNl
aXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBUZXN0
V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY28KICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZv
clRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1l
c3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkp
LCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhf
TUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0
aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0K
IAogYm9vbCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVy
TWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBjZGMxZWYxNjEwZGZjZmRhM2JlMjc4N2VjODMzMzk4
MzY4NThhMzBjLi4xOGFkZDhhNmZiNjA3Yjc2OGEzNzAzOTg2MzMwNTA0YzI3ODYyZmM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFt
QnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDMs
NyArNDMsNyBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogICAgIGlmIChjb25uZWN0aW9uLmln
bm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYg
Ly8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRl
Y29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQ
Ukl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggZGQyYjYxYmMzNDExOGNjNmJiMDVjNjg3
NGFiMDI4MjFiOGYxYjllMS4uNjc4NTRmODA5ZmU2ZjJjMjU0MjJjODIyMDU0M2ExOGMwZmUwYjY0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTYwLDcgKzYw
LDcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYgY28KICAgICBpZiAoY29ubmVjdGlvbi5jb25uZWN0
aW9uKCkuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3Ry
ZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVz
c2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZl
ci5jcHAKaW5kZXggYzI4ZTVlOGU4OGM3MGQyMDk1YTEzYzE4MjUwYzVjM2FjODQxNzk2Mi4uMTlh
ZTliMGMyZDRhMjgzYTI0YjVjYWU4M2ZkMjg4MDExMTA5MDYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdl
UmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBA
IHZvaWQgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxp
ZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBD
OjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIs
IFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAw
NWE4NWIwMTk2MDQyMDE2YWI2ODVmMjBkNGJlZjczYzQ2MjY1NjA3Li43ZWYxMmJiYmNmNzU4NzUy
NTk0ZTM1MzAwMTNjYjgwZjc5ZDI5Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEzMyw3ICsxMzMsOCBA
QCBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb24uY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHAKIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
clByb3h5LmNwcAogCi1OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwIEBuby11bmlmeQorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIEBuby11bmlmeQpAQCAtODc0LDUg
Kzg3NSw2IEBAIFJlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRl
eHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDUwODk4ZTQ2MzAxNzMxOTRhZTRlZjdjY2U0M2FlOGViNDY3M2E4NmIuLjFi
OWQ5N2MzOGM0MTJhN2NjOGQzZmZjNGE1MmNhNWNlNjU2NzU1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsMTAgQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTExLW1tLm0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMTAuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTExLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExMi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTExNS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTEyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwM2I0ZWQ4Y2E0
NGYxNzlmZDU4YTNlODlhMzNhNGU4MWVkMGVkNmM1Li5hMjAyZWE2ZmU4YTBiYjc3ZTNhMzY2Nzg0
MDEzZGNmNDI0OGRhODEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM5NSw2ICszOTUsMTAgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAw
NTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0FFQ0I2NTI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTEwOS5jcHAgKi87IH07CiAJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTExLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAq
LzsgfTsKKwkJMkNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNBRUNCNUUy
NzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwICovOyB9OworCQkzQ0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMy5jcHAgKi87IH07CisJCTRDQUVDQjY2Mjc0NjVBRTQwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTE0LmNwcCAqLzsgfTsKKwkJNUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMTUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovOyB9Owog
CQkxQ0FFQ0I2NzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi87IH07CiAJCTFDQUVDQjY4Mjc0NjVB
RTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTEwLmNwcCAqLzsgfTsKIAkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMDQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3Bw
ICovOyB9OwpAQCAtODgxLDcgKzg4NSw2IEBACiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAv
KiBOZXR3b3JrUlRDUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxREM0NTk0MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlk
ZXIuaCAqLzsgfTsKIAkJNDFEQzQ1OUMxRTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tl
dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFEQzQ1OUExRTNEQkIyNDAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9
OwogCQk0MURENzJBQjI2ODIxNjczMDBBOTBDNzEgLyogTldTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAv
KiBOV1NQSS5oICovOyB9OwotCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAgKi87IH07CiAJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFu
bmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJ
NDFFMjQyRTAyNkUwQzkwODAwOUE4QzY0IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTI0MkRGMjZF
MEM5MDQwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCTQx
RjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2
MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKQEAgLTMxODgsNiArMzE5MSwxMCBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZD
MkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTEwOS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA5
LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMDkuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTExLmNwcCI7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTJDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTEyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTIu
Y3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTExMi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkz
Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEzLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9X
ZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTMuY3BwIjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNENBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMTQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExNC5j
cHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTE0LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVD
QUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTUuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dl
YktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNS5jcHAiOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA4LmNw
cDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMDguY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNB
RUNCNjAyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gVW5pZmllZFNvdXJjZTExMC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEwLmNwcCI7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTA0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDQuY3Bw
OyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNv
dXJjZTEwNC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDE2
MCw2ICs0MTY3LDkgQEAKIAkJNDFGQ0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8q
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJGMjNDRTA0NDAw
MEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREEyNzVBNTYw
QjAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRkZEMkRCMjc1QTU2MEMwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJGIC8qIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1
MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEy
RDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjA4LDYgKzgyMTgsMTAgQEAK
IAkJCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi8s
CiAJCQkJMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICov
LAogCQkJCTFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAq
LywKKwkJCQkyQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAg
Ki8sCisJCQkJM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3Bw
ICovLAorCQkJCTRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNw
cCAqLywKKwkJCQk1Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5j
cHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzIjsKQEAgLTEwMzYwLDYgKzEwMzc0
LDkgQEAKIAkJOTNCQTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRkZEMkRBMjc1QTU2
MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLywKKwkJCQk0MUZG
RDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovLAor
CQkJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
Lm1lc3NhZ2VzLmluICovLAogCQkJCTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKIAkJCQk0MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyog
U2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAogCQkJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBD
NiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluICovLApAQCAtMTUyNTIsNyAr
MTUyNjksNiBAQAogCQkJCUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNw
ZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdCQ0Y3
MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29j
b2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMThFNjkxNzE2OUI2NjdCMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MURF
N0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRDkyQTc4NzIxMkI2QUIxMDBGNDkzRkQgLyogU2hhcmVhYmxlQml0bWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQzE4RkVCRjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFy
ZWRCdWZmZXJDb3B5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQzE4MTI0NUI1NDkzNDNCQzk4
MTY0QyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTU0NjgsNiArMTU0ODQsMTAgQEAKIAkJCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkzQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Q0FFQ0I2NjI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhB
MUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDBiODRiYmQzNjhmZWM5ZDRkYTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQuLjgzMjA4MjA2YzY0
YTY2MmEyNzk4NzNmOWM2NmQ5NDIyYzZhZDY1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKQEAgLTM5MSw2ICszOTEsMTIgQEAgYm9vbCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6aXNUaHJvdHRsZWFibGUoKSBjb25zdAogICAgIHJldHVybiBtX2lzVGhyb3R0
bGVhYmxlOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjb252ZXJ0
RmV0Y2hUb0Rvd25sb2FkKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
KiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24o
KS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQorICAg
ICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZhaWxIZWFydEJlYXRDaGVjayhTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb246OkRpZEZhaWxIZWFydEJlYXRDaGVjayB7IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIH0sIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggZTdkZjdkOTQx
YWNlOTA2NDE0ZWNmZmY1MGM0YmE0NzlkMTQ2NGRkNS4uMDU4MGQ5ODMyMjhhNzJiYjhjOTk0OWNh
MmIxYjRjNzExOGZhYzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0x
MDYsNiArMTA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1
c2VyQWdlbnQpOwogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldFRocm90dGxlU3RhdGUo
Ym9vbCBpc1Rocm90dGxlYWJsZSk7CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY2FuY2Vs
RmV0Y2hEb3dubG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9yZWdp
c3RyYWJsZURvbWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KaW5kZXggNTI4YmVjYTRlYTRjYjU3NTg2YzVmODY4MWZkYWFhYjJlMzcxMWQyYy4u
ZDU0MWI4MDMxOTJiOGQ1NGQxODIxN2ZiMTEyNTZkZjAwNjk1MzAyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTQzLDYgKzQzLDggQEAg
bWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7
CiAgICAgVXBkYXRlUHJlZmVyZW5jZXNTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNl
c1N0b3JlIHN0b3JlKQogICAgIENsb3NlKCkKICAgICBTZXRUaHJvdHRsZVN0YXRlKGJvb2wgaXNU
aHJvdHRsZWFibGUpCisKKyAgICBDb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IGZlZThmZWE3YmNjOGQ1OWMwN2UzYzVi
YTRkNjA5NTUyYTRkNjI4YmYuLmM3ZGU0MTY2OTE3M2M0NTg3ZTM5MWIyMjY3NWRiY2NhYmZlYWEy
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCkBAIC04NCw3ICs4NSwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nh
c3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBp
ZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBz
dGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIp
OworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nh
c3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFB
bmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRhKQpAQCAtMTA3LDcgKzExMSwxMCBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFu
ZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2FzZSBv
ZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4K
ICAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwoKTsKICAgICBpZiAoYmxvYlVS
TC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAg
ICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50
aWZpZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM1LDcgKzE0MiwxMCBAQCB2b2lk
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29u
c3QgdWludDhfdCogZGF0YSwgcwogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0
X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0
X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2
ZURhdGEgeyB7IGRhdGEsIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9m
ZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKQEAgLTE1Nyw3ICsxNjcsMTAgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9m
ZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmFpbCB7
IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVy
cm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE3NCw3
ICsxODcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5p
c2goKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRl
bnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRGaW5pc2ggeyB9LCBt
X2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE5NCw2ICsyMTAsMTIgQEAgdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQogICAgIG1fY29ubmVj
dGlvbiA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6Y29udmVydEZldGNoVG9Eb3dubG9hZCgpCit7CisgICAgbV9pc0Rvd25sb2FkID0gdHJ1ZTsK
KyAgICBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworfQorCiB2b2lkIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKICAg
ICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xp
ZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSwgaGFzIGNvbm5lY3Rpb24gJWQsIGRpZEZp
bmlzaCAlZCwgcmVzcG9uc2UgdHlwZSAlbGQiLCAhIW1fY29ubmVjdGlvbiwgbV9kaWRGaW5pc2gs
IHN0YXRpY19jYXN0PGxvbmc+KG1fcmVzcG9uc2VEYXRhLmluZGV4KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuaAppbmRleCBiMzQ3Y2FkMmFiNWY1NzFiMWEwZTIwNzIwODA0
MzY3ZDc3MDE4NjAwLi4wMWY2MTBiZDQzM2EyZTlhZmM5YTFmZGQ1NGIwODQzMGI5ODM3ZDcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCkBAIC01Niw2ICs1Niw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWROb3RIYW5kbGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbCgp
IGZpbmFsOwogICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSBmaW5hbDsKKyAg
ICB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKSBmaW5hbDsKIAogICAgIHZvaWQgY2xlYW51
cCgpOwogICAgIApAQCAtODQsNiArODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5n
Rm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIHsgZmFsc2UgfTsKICAgICBzdGQ6
OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBSZWY8
V2ViQ29yZTo6Rm9ybURhdGE+LCBVbmlxdWVSZWY8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4+IG1f
cmVzcG9uc2VEYXRhOwogICAgIGJvb2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc0Rvd25sb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzZGZkM2Qw
ZWMxMTg0MDY1ZTg4Y2Q3MDMyZjI2MTkwYTdhNmI0YWUuLmFhZDU1ODQyN2Q3ZjgxMzY5OGU0Zjgy
YWFmOWUwYzc3NmUxMjBmM2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHJ1bm5lciBBUEkgdG8gbG9nIHRo
ZSB0b3RhbCBkb3dubG9hZCBzaXplLgorICAgICAgICBUaGlzIGhlbHBzIGVuc3VyaW5nIHRoYXQg
c2VydmljZSB3b3JrZXIgbG9hZHMgYXJlIGNvcnJlY3RseSBkb3dubG9hZGVkIGFuZCBkbyBub3Qg
cmVseSBvbiBuZXR3b3JraW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcDoKKwogMjAyMS0xMi0wNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgZmluZC1pbi1wYWdlIFNQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggN2NlYTA2NzZkMjdiNzI3MDE1MDI5NTlk
MTdlMGNiNWM3Y2UwZWM2Yi4uNWY4NTI5OTIwNjM3MzFlMGMyMTI4YjIwYmJlZjZmYjc3MGRlY2I5
NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zOSw2ICszOSw3IEBAIGludGVyZmFj
ZSBUZXN0UnVubmVyIHsKICAgICAvLyBEb3dubG9hZHMuCiAgICAgdW5kZWZpbmVkIHdhaXRVbnRp
bERvd25sb2FkRmluaXNoZWQoKTsKICAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRD
YWxsYmFja3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFNob3VsZExvZ0Rvd25s
b2FkU2l6ZShib29sZWFuIHZhbHVlKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRF
Ul9UUkVFX1NIT1dfQUxMX0xBWUVSUyAgICAgICAgICAgID0gMTsKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBSRU5ERVJfVFJFRV9TSE9XX0xBWUVSX05FU1RJTkcgICAgICAgICA9IDI7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAppbmRleCBlMWZjZTJjYTUxZjFiMDJkOWM0MzdiMDk5ZWY3MTgzNjYxNTkwY2MyLi5hMzI4MGRm
MTZjZDQ0ZjZkMDk4MDA4ZTYxOTJhNGMxMTMwNGFlMjJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEwMDgsNiAr
MTAwOCwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tz
KGJvb2wgdmFsdWUpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRTaG91bGRMb2dEb3dubG9hZENh
bGxiYWNrcyIsIHZhbHVlKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRMb2dEb3du
bG9hZFNpemUoYm9vbCB2YWx1ZSkKK3sKKyAgICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExv
Z0Rvd25sb2FkU2l6ZSIsIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRBdXRoZW50
aWNhdGlvblVzZXJuYW1lKEpTU3RyaW5nUmVmIHVzZXJuYW1lKQogewogICAgIHBvc3RQYWdlTWVz
c2FnZSgiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHRvV0sodXNlcm5hbWUpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMzFmMTA2Zjk5M2I4YjY3NTdhOTY5MjJkNmIwY2Q0YzRjNDQ2ODFhZC4uNWM2YTk2Y2FlMDFm
NTkyNTU0NWI4ZjA2MGVhZmRmMmQ2YmUxYmYyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBw
dWJsaWM6CiAgICAgLy8gRG93bmxvYWRzCiAgICAgYm9vbCBzaG91bGRGaW5pc2hBZnRlckRvd25s
b2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGaW5pc2hBZnRlckRvd25sb2FkOyB9CiAgICAg
dm9pZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sKTsKKyAgICB2b2lkIHNldFNo
b3VsZExvZ0Rvd25sb2FkU2l6ZShib29sKTsKIAogICAgIGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZDI4MDJmYjFlNzY2ZGM1ZGU2N2M0
NGQxNTc2NjE2MzJjMzkzMWEzLi42YjhhY2JmZGZiYzRlNjFhNDYxNzg3ZWM3OTdkNjcxMzk2Y2My
Y2RmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ2
LDcgKzE0Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5hdmlnYXRpb25EaWRCZWNvbWVEb3du
bG9hZFNoYXJlZChXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBjCiAgICAgICAgIFRlc3RDb250cm9s
bGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMLAogICAgICAgICBUZXN0
Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsCiAg
ICAgICAgIFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZSwKLSAgICAgICAgbnVsbHB0ciwgLy8gZGlkV3JpdGVEYXRhCisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YSwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRv
d25sb2FkRGlkRmluaXNoLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWls
CiAgICAgfTsKQEAgLTExMDgsNiArMTEwOCw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAg
ICAgICAgIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsKICAgICB9CiAK
KyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB7IH07CisKICAgICByZXR1cm4gbV9k
b25lUmVzZXR0aW5nOwogfQogCkBAIC0yMjM3LDYgKzIyMzksOCBAQCBXS1N0cmluZ1JlZiBUZXN0
Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tEb3du
bG9hZFJlZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlzaChXS0Rvd25s
b2FkUmVmKQogeworICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSkKKyAgICAgICAgbV9j
dXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJEb3dubG9hZCBzaXplOiAi
LCBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4udmFsdWVfb3IoMCksICIuXG4iKSk7CiAgICAg
aWYgKG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCiAgICAgICAgIG1fY3VycmVudEludm9j
YXRpb24tPm91dHB1dFRleHQoIkRvd25sb2FkIGNvbXBsZXRlZC5cbiIpOwogICAgIG1fY3VycmVu
dEludm9jYXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwpAQCAtMjI2OSw2ICsyMjczLDE4IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShudWxscHRyLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9uZyB0b3RhbEJ5dGVz
V3JpdHRlbikKK3sKKyAgICBpZiAoIW1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB0b3RhbEJ5dGVz
V3JpdHRlbjsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEo
V0tEb3dubG9hZFJlZiBkb3dubG9hZCwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25n
IHRvdGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxl
cio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZG93bmxvYWREaWRXcml0ZURhdGEo
dG90YWxCeXRlc1dyaXR0ZW4pOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNz
RGlkVGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2hlbiBjcmFzaCBs
b2dzIGFyZSBiZWluZyBzYXZlZCBvbiBXaW5kb3dzLCBzbwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCmluZGV4IDVjZDQ5ZmFmMzBkZTc4Y2NlYWNkNWFkMDNjODQ4NmRjNWZj
OTFjMTAuLjQwM2VkYzIzZTg1MGExNDg0YzYxMmQ1OWQ0ZGJkYjA5OTFhMmMxN2IgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKGJvb2wgc2hv
dWxkTG9nKSB7IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyA9IHNob3VsZExvZzsg
fQogICAgIHZvaWQgc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZShib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25s
b2FkQ2FsbGJhY2tzKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFj
a3MgPSBzaG91bGRMb2c7IH0KKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29s
IHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSA9IHNob3VsZExvZzsgfQogCiAg
ICAgYm9vbCBpc0N1cnJlbnRJbnZvY2F0aW9uKFRlc3RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uKSBj
b25zdCB7IHJldHVybiBpbnZvY2F0aW9uID09IG1fY3VycmVudEludm9jYXRpb24uZ2V0KCk7IH0K
IApAQCAtNDczLDcgKzQ3NCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGRvd25sb2Fk
RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25z
ZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgYm9vbCBkb3dubG9hZERp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdLVVJMUmVxdWVzdFJl
Zik7CiAgICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV0tEb3dubG9hZFJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7Ci0gICAgCisKKyAgICB2b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRh
KGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbik7CisgICAgc3RhdGljIHZvaWQgZG93bmxvYWRE
aWRXcml0ZURhdGEoV0tEb3dubG9hZFJlZiwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBs
b25nIHRvdGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKICAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNz
RGlkVGVybWluYXRlKFdLUGFnZVJlZiwgIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24pOwogCkBAIC02NjMsNiArNjY3LDkgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFsc2Ug
fTsKIAogICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0cnVl
IH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmcgbG9uZz4gbV9kb3dubG9hZFRvdGFsQnl0ZXNX
cml0dGVuOworICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgeyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCmluZGV4IDNkZmFjNWZjMDA5ZTQ5NjU0NDRlNmI0MDkxZGJlZWIyZTIyMWQyYmIuLjcy
ZmE4MmJiYzAxMDI5NmYwNGQxMzBlYzliYzZhNDM1N2NiZDBlOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC01MzcsNiArNTM3LDExIEBAIHZvaWQgVGVz
dEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5n
UmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZExvZ0Rvd25sb2Fk
U2l6ZSIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRM
b2dEb3dubG9hZFNpemUoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiKSkgewogICAgICAgICBXS1N0cmluZ1Jl
ZiB1c2VybmFtZSA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUodG9XVEZTdHJpbmco
dXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4NWFlNzRhYmIyNWU1NzJjY2YzMTkzMzczZjcyM2Q1YThlNDAw
NDQyLi5kM2ZmOGY3ZGIyMjY0ZjA3NTJhYzJhMmE3YWE0MThjNWU2NDdkOWEyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMjEtMTItMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91
Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3du
bG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRv
d25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNl
cnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQu
cHk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRj
aC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQu
aHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQu
aHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMi0wOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gaW1wb3J0
IHNvbWUgbmV3IFdQVHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13
b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCmluZGV4IGQ1YzY2MzBiYjUxMWY1ZjdhYjI4ZWRkMjFi
NDBhYThmYzMzNDZlZjcuLjYwMDI5MjM5ZDM3ZTBjMmVmZWEyMWMyNTVkZWYyZmFmZjdiZmI4M2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25s
b2FkLXdvcmtlci5qcwpAQCAtMSwzICsxLDIxIEBACiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZl
dGNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJk
b3dubG9hZC1ib2R5IikpIHsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uo
ImEgZG93bmxvYWQgYm9keSIsIHsiaGVhZGVycyIgOiBbWyJDb250ZW50LVR5cGUiLCAiYXBwbGlj
YXRpb24vYmluYXJ5Il1dfSk7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVk
ZXMoImRvd25sb2FkLXN0cmVhbSIpKSB7CisgICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFk
YWJsZVN0cmVhbSh7CisgICAgICAgICAgICBzdGFydDogKGNvbnRyb2xsZXIpID0+IHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7CisgICAgICAgICAg
ICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCJhIGZpcnN0IGNodW5rLCAi
KSk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIuZW5xdWV1
ZShlbmNvZGVyLmVuY29kZSgidGhlbiBhIHNlY29uZCBjaHVuayIpKTsgfSwgMTAwKTsKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udHJvbGxlci5jbG9zZSgpOyB9LCAyMDAp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2Uoc3RyZWFtLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZl
bnQucmVxdWVzdC51cmwpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmVi
YzJiODZlNjZiYjM5YzliYzA5ZDNkYTkzZjQwMzI0MzFiY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93
bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBz
dGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJkb3dubG9h
ZC1ib2R5IgorRG93bmxvYWQgc2l6ZTogMTUuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YWQyZDQ4MGE5MWRhYWMxYzZkNGQwZWVjODllY2MyODdmNGJhOWM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3du
bG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNp
emUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0
ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZy
YW1lKCJyZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzLyIpOworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9kb3dubG9hZC1ib2R5IjsKK30KK2RvVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
OWExOWViZTM3YTMxNGIzZjU4NjI0OGE3NjY3ZmE1MGMwZjM5ZmRjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXIt
ZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25s
b2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRv
d25sb2FkLXN0cmVhbSIKK0Rvd25sb2FkIHNpemU6IDM0LgorRG93bmxvYWQgY29tcGxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1NzczZmU0Njk2NDA2NDMzMDNiZTAzZmE3NDBkYzhjMWNiYTgw
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbApAQCAtMCwwICsx
LDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxk
TG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmlu
aXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdhaXQg
aW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtl
ci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9jYXRp
b24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtc3RyZWFtIjsKK30KK2Rv
VGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZDA4ZWY4
NDZkMzJmNmVjOTFkOTQyNzNjOWMyNGUwZjBmMmNhNjIwMi4uOWUzMzNkNTY5MWU5OWJiZTVkZTMz
MmI1Y2FmYjFlNGZkZWNhMzcyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29y
a2VyLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIERvd25sb2Fk
IHN0YXJ0ZWQuCiBEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25s
b2FkLWJpbmFyeS5weSIKK0Rvd25sb2FkIHNpemU6IDkuCiBEb3dubG9hZCBjb21wbGV0ZWQuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCmluZGV4IDhj
OWFkYTNmYzgxMmMzNjA5N2IzZDAzOTQxNjQwOTM1Y2IyMmU3NDYuLjRhNWFhODdiNGVjMGQzZDcz
Yzk3MTYxZTA2MmZjN2RjNjhhMTdiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXIt
ZG93bmxvYWQuaHR0cHMuaHRtbApAQCAtNyw2ICs3LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGRM
b2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3du
bG9hZFNpemUodHJ1ZSk7CiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgp
OwogICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0
cnVlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJl
Y3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmMzQzYzUxZDU5YTE5
N2IwMmNmNWRmMzE5NzM3MTNiNjNkN2FiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRv
d25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkudmNmIgor
RG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mYmE4YzdiZTRlYTY5ODA1MDhhZmZlNzEwNWNkNGYwZTI5Y2JlNDM0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVy
LnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3Bs
YXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQg
PSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJm5vLWZl
dGNoLWV2ZW50LWhhbmRsaW5nPXllcyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0
IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0
aXZhdGluZygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAg
ICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEgPT09ICJhY3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgIH07CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkK
K3sKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5j
IGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOwor
ICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAg
fQorCisgICAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRp
b24uaW5zdGFsbGluZykgeworICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAg
ICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13
b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7
IHBvcnQ6IGNoYW5uZWwucG9ydDEgfSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdh
aXRVbnRpbEFjdGl2YXRpbmcoKTsKKworICAgIGZldGNoKHVybCArICImdmFsdWU9dXNlLXByZWxv
YWQiLCB7IG1ldGhvZDogJ1BPU1QnIH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0
aXZhdGluZyB3b3JrZXIsIHNvIHByZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25l
IHRvIGJlIGRvd25sb2FkZWQsIGRpcmVjdGx5IHRocm91Z2ggcHJlbG9hZCBzaW5jZSBzZXJ2aWNl
IHdvcmtlciBkaWQgbm90IGhhbmRsZSB0aGUgZXZlbnQuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBz
aG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRo
SWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNmYzNDNjNTFkNTlhMTk3YjAyY2Y1ZGYzMTk3MzcxM2I2M2Q3YWIxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1
Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHku
dmNmIgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmZkZmVjNDJiYzMyMTIwNzAzMmM5MWY4NDQ4N2IyMDRiZTUx
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sCkBAIC0w
LDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91
dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVy
LnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNo
b3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9h
ZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxl
TUlNRVR5cGVzKHRydWUpOworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tl
bigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJnRva2VuPSIgKyB1
dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwor
CitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25tZXNzYWdlID0gKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFjdGl2YXRpbmciKQorICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgi
YWN0aXZhdGUiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZVNlcGFyYXRlU2Vydmlj
ZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+
IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9
KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1z
ZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAg
fQorCisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0
aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5w
b3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGlsQWN0aXZhdGluZygpOworCisgICAgZmV0Y2go
dXJsICsgIiZ2YWx1ZT11c2UtcHJlbG9hZCIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisKKyAgICAv
LyBMb2FkIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28gcHJlbG9hZCB3aWxsIHN0
YXJ0IGFuZCB3aWxsIGJlIHRoZSBvbmUgdG8gYmUgZG93bmxvYWRlZCwgdGhyb3VnaCB0aGUgc2Vy
dmljZSB3b3JrZXIuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNl
LXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0
cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5q
cwppbmRleCBkMDRhNDlhNzhjZDg5MjlhNGZkMGRiNGFiMGNlYjgwMWEwMTk1MGU4Li42ODUwZTAx
ZGE5ZjFiNjZmY2NkZjNhOGYxNzg5NjExNzQzYjgxYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13
b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtd29ya2VyLmpzCkBAIC0yMyw1ICsyMyw3IEBAIG9uYWN0
aXZhdGUgPSAoZXZlbnQpID0+IHsKIH0KIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcs
IChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygibm8tZmV0
Y2gtZXZlbnQtaGFuZGxpbmciKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGV2ZW50LnJlc3BvbmRX
aXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKaW5kZXggMjA2
NzgzNmY1NDE3MDNkZTg0ZjA4YjhlYjNlNmNjOGMzMzgxMzlmZS4uMTIwNjJiOGM1ZTEzNGY5YzUw
N2QyMDlhNDQ0OTNhYjI3ODIxODUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNj
cmlwdC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5CkBAIC0zMSw1ICszMSwx
MCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgaWYgbm90IHZhbHVlOgogICAg
ICAgICB2YWx1ZSA9IGIibm90aGluZyIKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hl
LUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKworICAgIGlmIGIiZG93bmxvYWQiIGluIHJlcXVlc3Qu
R0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4
dC92Y2FyZCIpCisgICAgICAgIHJldHVybiB2YWx1ZS5kZWNvZGUoKQorCiAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCiAgICAgcmV0dXJuICI8
aHRtbD48Ym9keT48c2NyaXB0PndpbmRvdy52YWx1ZSA9ICclcyc7PC9zY3JpcHQ+PC9ib2R5Pjwv
aHRtbD4iICUgdmFsdWUuZGVjb2RlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFi
MmU1MGQ5MTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25s
b2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkiCitEb3dubG9h
ZCBzaXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdv
cmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVk
YmQzYWExYmVjZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZp
bGVuYW1lICJmZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSIKK0Rvd25sb2Fk
IHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446520</attachid>
            <date>2021-12-09 04:50:13 -0800</date>
            <delta_ts>2021-12-09 05:14:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211209135009.patch</filename>
            <type>text/plain</type>
            <size>99740</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uOTI5MDNiNzE0YzRmZWZjZTQyN2FkZTIwNjhlZjM1
NmI1YjNkMjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wOCAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4NjU1Nik6IERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBpT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzM2NTU2Yzk5ZGQxNzUxZmQ4ZjAzZWJmMjU2MmExZTYwYmZhMWQzNy4uZjI2NGFl
ZDJkMTdjZTVlNDM3MWQyMWM4NTkxNDYzM2JhMTY1MjllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MiBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIGNsYXNzIGFzIGEgTmV0d29ya0RhdGFU
YXNrIHdob3NlIHB1cnBvc2UgaXMgdG8gZG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgYSByZXNwb25z
ZSBnaXZlbiBmcm9tIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBBZGQgYSB3YXkgdG8gY29udmVy
dCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGludG8gZG93bmxvYWRzOgorICAgICAgICAtIElmIGEg
cHJlbG9hZCBpcyBvbmdvaW5nIGFuZCBjYW4gYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiwgdXNlIHRo
aXMgcHJlbG9hZCBhcyB0aGUgZG93bmxvYWQgTmV0d29ya0xvYWQuCisgICAgICAgIC0gSWYgYSBw
cmVsb2FkIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
IGFuZCBhIGNvcnJlc3BvbmRpbmcgTmV0d29ya0xvYWQgdG8gc3RhcnQgZG93bmxvYWRpbmcgdGhl
IHNlcnZpY2Ugd29ya2VyIHJlc3BvbnNlIGRhdGEuCisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLCB0aGUgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudCB3aWxsIGJlIG5vdGlmaWVkIHRvIHN0YXJ0IHNlbmRpbmcgcmVzcG9uc2UgZGF0YSB1c2lu
ZyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrCisgICAgICAgIGluc3RlYWQgb2YgU2VydmljZVdv
cmtlckZldGNoVGFzayBtZXNzYWdlcy4gVGhpcyBhbGxvd3MgY2FuY2VsbGluZyB0aGUgU2Vydmlj
ZVdvcmtlckZldGNoVGFzayB3aXRob3V0IGFueSBpc3N1ZS4KKworICAgICAgICBOb3RlIHRoYXQg
dGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lIGlzIG5vdCBhdWdtZW50ZWQ6IGlmIHRoZSBzZXJ2
aWNlIHdvcmtlciBleGl0cyBkdWUgdG8gYWxsIGl0cyBjbGllbnRzIGJlaW5nIGNsb3NlZCwgdGhl
IGRvd25sb2FkIHdpbGwgZmFpbC4KKworICAgICAgICBJbmNyZWFzZSB1bmlmaWVkIGJ1aWxkIGZp
bGVzIHRvIDExMi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHA6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2g6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3Nh
Z2VNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aElmTWVzc2Fn
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVz
dFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRl
c3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJl
YW1NZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0
dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6CisKIDIwMjEtMTItMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFs
IHN1cHBvcnQgZm9yIGZpbmQtaW4tcGFnZSBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKaW5kZXgg
ZWIyNjZiNmMwN2U2NzNkOTE2NmNhY2U2YjMzOTE5ZDgwZWJiZjMxYy4uZGU5ZTIzMGY5YmRiOTlh
NWU4Mzg3ZGZkOTYwM2FlYzVjYWEzZjAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGUoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRGZXRj
aFRvRG93bmxvYWQoKSA9IDA7CiB9OwogCiB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xp
ZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJl
ZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmNwcAppbmRleCBiM2NmMmM3M2IyMjM5MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRi
Li5kYjZjOTNiOGJlOTFiOWI5MjI3MTA5NDc5OWQwZGRjM2Y2NDgyZGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTI0Miw2ICsyNDIsMjAgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OmNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgY29ubmVjdGkKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0K
IAorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udmVydEZldGNoVG9Eb3dubG9h
ZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VX
b3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQg
JWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKworICAgIGF1dG8gY2xpZW50ID0g
bV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIpKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbY2xp
ZW50ID0gUmVmIHsgKmNsaWVudCB9XSAoYXV0byYpIHsKKyAgICAgICAgY2xpZW50LT5jb252ZXJ0
RmV0Y2hUb0Rvd25sb2FkKCk7CisgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7
Cit9CisKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb250aW51ZURpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBjbGll
bnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLmdldChzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oCmluZGV4IDBhMzM3OTI0NDgwZWJmODI2NzUzZWY1NDFhM2YxY2Q0YzY5MjVmNGEuLjAxYjNh
ZDA0OTE1ZDRiZTI3YjAxYmNmZmRjNmIwY2ZiMjA4ZmMwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0
JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2Fu
Y2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGIxZGJiYjU1NDlmN2EwNTFiY2NiMGRiZTJmMjM5OWFh
YmYxYWI5MjEuLjI1OWU0NzJiNTdkMGM2NGZmNzQzNzlmMmM5MjljODcyY2ZlZmUwODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dApAQCAtMTk3LDYgKzE5Nyw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5f
RklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbAogICAgIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCiAgICAgTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA1YmE2NGI0NGJlMWU1Nzc1
MDg4ZmM2ZTkwNTU5OWM3Y2Q1NzgzY2QzLi40MDRhNzIyYzc2OTAwMDBhMGYwM2I5YTgwMGRmYzVi
N2ExZTMwYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC04Nyw2ICs4Nyw3IEBAICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyMmRhN2I3NzcwODUwNzUwNmY1MThm
ZjQyOGYwNzY1NjFiZGVmYWJhLi4zNjdlMGFjMTBmOGM1MGMwZjNmNGMxODUxMzE4ZWRiNTY1MWFh
ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKQEAgLTM5Niw2ICszOTYsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25s
b2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25s
b2FkVGFza01lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDY4NGZhY2Q1ZDc2ZmMyNGEyN2IwN2FmNDcwY2MzZjlhM2Nk
MWMwNjAuLmIzYjcxOTc3YjRhMGFlNDFhMmI2YzBkNzVkMzczN2YwOTM5YTczMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyIFwKIAlOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbCBcCiAJTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24gXAorCU5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzayBcCiAJTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIFwKIAlOZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBc
CiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDI5MWNjOTg5MmU4MTAyN2Q5Y2FlZDFkOWRiNzA2MWQ3M2U2NzQxNzAu
LmI4ODBiNzZiNzMwZWU0NTljM2YxOWRjMjVmZWZhMjFhMTAzZTY2NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC02OTUsOCArNjk1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHN0ZDo6b3B0
aW8KIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICAvLyBJ
biBjYXNlIGEgcmVzcG9uc2UgaXMgc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIsIHdlIGRvIG5v
dCBoYXZlIHlldCB0aGUgYWJpbGl0eSB0byBjb252ZXJ0IHRoZSBsb2FkLgotICAgIGlmICghbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VS
ZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgaWYgKCFtYWluUmVzb3VyY2VM
b2FkSWRlbnRpZmllcikgewogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFn
ZXIoKS5zdGFydERvd25sb2FkKG1fc2Vzc2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0LCBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggYmFjMDIyYWI0
NTQzMGY2NTFiMTg5YWMwMTIwN2EwNjA2MDhjMTY3MS4uNmRmMTQxMDczNmFiYTJmMmQ5YTE5NjE1
NmMwYjFiYWZhOGU3MDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDEzIEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChO
ZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBCbG9iUmVnaXN0cnlJbXBsKiBibG9iUmVnaXN0CiAg
ICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKG5ldHdvcmtTZXNzaW9uLCAq
dGhpcywgbV9wYXJhbWV0ZXJzKTsKIH0KIAorTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdv
cmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29u
c3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50
Jik+JiBjcmVhdGVUYXNrKQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9uZXR3b3Jr
UHJvY2VzcyhuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpKQorICAgICwgbV90YXNrKGNy
ZWF0ZVRhc2soKnRoaXMpKQoreworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydCgpCiB7CiAg
ICAgaWYgKCFtX3Rhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmgKaW5kZXggYzM3NzNjOTg3ODU1M2NlNTM0ZDA1NGFiZmZkZGViYjI5ZWUwODRkMi4uYjkyZjlj
NjFlMTM1OTBjNDFjYmMxZDhiMzgyOGQzYWNjYjc1MWIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBOZXR3b3Jr
TG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMm
JiwgTmV0d29ya1Nlc3Npb24mKTsKKyAgICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYs
IE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4o
TmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+Jik7CiAgICAgfk5ldHdvcmtMb2FkKCk7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTUwY2Y0YWJiZTU2NGU0Y2EzZmI3MjZjYWE5
ZDU2OWM1NGIwOWQ3Mi4uYjg3YWQ0ZDNjMWNhMDMxMGRiMjNhNzkyMDg5ZTVkMTg3YWM4Zjk0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtNDg0LDYgKzQ4NCwxMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNv
dQogewogICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29udmVydFRvRG93bmxvYWQ6IChkb3dubG9h
ZElEPSUiIFBSSXU2NCAiLCBoYXNOZXR3b3JrTG9hZD0lZCwgaGFzUmVzcG9uc2VDb21wbGV0aW9u
SGFuZGxlcj0lZCkiLCBkb3dubG9hZElELnRvVUludDY0KCksICEhbV9uZXR3b3JrTG9hZCwgISFt
X3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQorICAgIGlmIChtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2sgJiYgbV9zZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLT5jb252ZXJ0VG9Eb3dubG9hZChtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCku
ZG93bmxvYWRNYW5hZ2VyKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291
cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsK
ICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigp
LnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklEKCksIGRvd25sb2FkSUQsIHJlcXVlc3QsIG1fcGFyYW1l
dGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWI0ZGU5ZDY1MGMyZmI5Yzgx
NWVlZmM2OTJiYzk0ZTIwNjFlMDFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3Bw
CkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKworI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5o
IgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYv
V29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworc3RhdGljIFdvcmtRdWV1ZSYgc2hhcmVkU2VydmljZVdvcmtlckRvd25sb2FkVGFz
a1F1ZXVlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJTaGFyZWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayBR
dWV1ZSIpKTsKKyAgICByZXR1cm4gcXVldWUuZ2V0KCk7Cit9CisKK1NlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2s6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb3dubG9hZElEIGRv
d25sb2FkSUQpCisgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UsIGZhbHNlLCBmYWxzZSkKKyAgICAs
IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24oc2VydmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAg
LCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAg
ICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cikKKyAgICAsIG1fZmV0Y2hJZGVudGlmaWVyKGZldGNoSWRlbnRpZmllcikKKyAgICAsIG1fZG93
bmxvYWRJRChkb3dubG9hZElEKQorICAgICwgbV9uZXR3b3JrUHJvY2VzcyhzZXJ2aWNlV29ya2Vy
Q29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpKQoreworICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uLnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOworfQorCitTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrOjp+U2VydmljZVdvcmtlckRvd25sb2FkVGFzaygpCit7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6Y2xvc2UoKQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OworCisgICAgaWYgKG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pIHsKKyAgICAgICAgbV9zZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKKyAgICAgICAg
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgfQorfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBNZXNzYWdlPiBib29sIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnNlbmRU
b1NlcnZpY2VXb3JrZXIoTWVzc2FnZSYmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIG1fc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb24gPyBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5pcGNDb25uZWN0
aW9uKCkuc2VuZChzdGQ6OmZvcndhcmQ8TWVzc2FnZT4obWVzc2FnZSksIDApIDogZmFsc2U7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlzcGF0Y2hUb1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCit7CisgICAgc2hhcmVkU2VydmljZVdvcmtlckRvd25s
b2FkVGFza1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAg
fSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6Y2FuY2VsKCkKK3sKKyAg
ICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKworICAgIHNoYXJlZFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2tRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0geworICAgICAgICBpZiAobV9kb3dubG9hZEZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZSkgeworICAgICAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxl
KG1fZG93bmxvYWRGaWxlKTsKKyAgICAgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
aWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24tPnJl
dm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBudWxscHRyOworICAgIH0KKwor
ICAgIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpDYW5jZWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pOworCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgY2xvc2UoKTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpyZXN1bWUoKQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2s6OmludmFsaWRhdGVBbmRDYW5jZWwoKQoreworICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOworCisgICAgY2FuY2VsKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgV1RGOjpTdHJpbmcm
IGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OworCisgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbigpKSB7CisgICAgICAgIHNoYXJlZFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRpZEZhaWxEb3dubG9hZCgp
OworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5ldHdvcmtEYXRh
VGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZmlsZW5hbWUsIHsgfSwgYWxsb3dPdmVy
d3JpdGUpOworCisgICAgQVNTRVJUKCFtX3NhbmRib3hFeHRlbnNpb24pOworICAgIG1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpKTsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKQorICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKKworICAgIHNoYXJlZFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2tRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgYWxsb3dPdmVyd3JpdGUgLCBmaWxlbmFtZSA9IGZpbGVuYW1lLmlzb2xhdGVkQ29weSgp
XSgpIG11dGFibGUgeworICAgICAgICBpZiAoYWxsb3dPdmVyd3JpdGUgJiYgRmlsZVN5c3RlbTo6
ZmlsZUV4aXN0cyhmaWxlbmFtZSkpIHsKKyAgICAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6ZGVs
ZXRlRmlsZShmaWxlbmFtZSkpIHsKKyAgICAgICAgICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBtX2Rvd25sb2FkRmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24sIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOworICAgICAgICBp
ZiAobV9kb3dubG9hZEZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSkKKyAgICAgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgIH0pOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQobV9zdGF0ZSAh
PSBTdGF0ZTo6Q29tcGxldGVkKTsKKworICAgIGlmICghc2VuZFRvU2VydmljZVdvcmtlcihNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnZlcnRGZXRjaFRvRG93bmxv
YWQgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KSkgeworICAgICAgICBzaGFyZWRTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH1dKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXRlID0gU3RhdGU6
OlJ1bm5pbmc7CisKKyAgICBhdXRvJiBtYW5hZ2VyID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxv
YWRNYW5hZ2VyKCk7CisgICAgYXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8RG93bmxvYWQ+KG1h
bmFnZXIsIG1fZG93bmxvYWRJRCwgKnRoaXMsICpuZXR3b3JrU2Vzc2lvbigpKTsKKyAgICBhdXRv
KiBkb3dubG9hZFB0ciA9IGRvd25sb2FkLmdldCgpOworICAgIG1hbmFnZXIuZGF0YVRhc2tCZWNh
bWVEb3dubG9hZFRhc2sobV9kb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CisgICAgZG93
bmxvYWRQdHItPmRpZENyZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24p
OworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVEYXRhKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBpZiAobV9kb3dubG9hZEZp
bGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2l6ZV90IGJ5dGVzV3JpdHRlbiA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxl
KG1fZG93bmxvYWRGaWxlLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworCisgICAgaWYgKGJ5
dGVzV3JpdHRlbiAhPSBkYXRhLnNpemUoKSkgeworICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgYnl0ZXNXcml0dGVuXSB7CisgICAgICAgIG1f
ZG93bmxvYWRCeXRlc1dyaXR0ZW4gKz0gYnl0ZXNXcml0dGVuOworICAgICAgICBpZiAoYXV0byog
ZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZCht
X3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlRGF0
YShieXRlc1dyaXR0ZW4sIG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4sIDApOworICAgIH0pOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25z
dCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBmb3JtRGF0YSkKK3sKKyAgICBBU1NFUlQoIWlzTWFp
blJ1bkxvb3AoKSk7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCB3cml0aW5nIGZvcm1EYXRhIGlu
IGRvd25sb2Fkcy4KKyAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhIG5vdCBpbXBsZW1lbnRlZCIp
OworICAgIGRpZEZhaWxEb3dubG9hZCgpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2s6OmRpZEZpbmlzaCgpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisg
ICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxlKTsKKyAgICBtX2Rvd25sb2Fk
RmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKKyAgICBjYWxs
T25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIHsKKyAg
ICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIGNsb3NlKCk7CisKKyAg
ICAgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxw
dHI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byBkb3dubG9hZCA9IG1fbmV0d29ya1By
b2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQor
ICAgICAgICAgICAgZG93bmxvYWQtPmRpZEZpbmlzaCgpOworCisgICAgICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJvcih7IH0pOworICAg
IH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZhaWwoUmVzb3Vy
Y2VFcnJvciYmIGVycm9yKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAg
IGRpZEZhaWxEb3dubG9hZChXVEZNb3ZlKGVycm9yKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzazo6ZGlkRmFpbERvd25sb2FkKHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VFcnJv
cj4mJiBlcnJvcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBpZiAo
bV9kb3dubG9hZEZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkg
eworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAg
ICBtX2Rvd25sb2FkRmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7
CisgICAgfQorCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBlcnJvciA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGVycm9yKSldIHsK
KyAgICAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkNvbXBsZXRlZCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgY2xv
c2UoKTsKKworICAgICAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gcmVzb3VyY2VFcnJvciA9
IGVycm9yLnZhbHVlX29yKGNhbmNlbGxlZEVycm9yKGZpcnN0UmVxdWVzdCgpKSk7CisgICAgICAg
IGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCku
ZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlk
RmFpbChyZXNvdXJjZUVycm9yLCBJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisKKyAgICAgICAgaWYg
KG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHJl
c291cmNlRXJyb3IpOworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNTllYWU1MjY2NTMwNjIxMmEyOGU5MzIzYTJi
OGI0ZmZlMGM3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oCkBAIC0wLDAgKzEs
MTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIkRvd25sb2FkLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisK
K25hbWVzcGFjZSBJUEMgeworY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrTG9hZDsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzOwor
Y2xhc3MgU2FuZGJveEV4dGVuc2lvbjsKK2NsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjsKKworY2xhc3MgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayA6IHB1YmxpYyBOZXR3b3Jr
RGF0YVRhc2ssIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERv
d25sb2FkSUQgZG93bmxvYWRJRCkgeyByZXR1cm4gYWRvcHRSZWYoKiBuZXcgU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzayhzZXNzaW9uLCBjbGllbnQsIGNvbm5lY3Rpb24sIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBy
ZXF1ZXN0LCBkb3dubG9hZElEKSk7IH0KKyAgICB+U2VydmljZVdvcmtlckRvd25sb2FkVGFzaygp
OworCisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fZmV0Y2hJZGVudGlmaWVyOyB9CisgICAgdm9pZCBjb250ZXh0Q2xvc2VkKCkg
eyBjYW5jZWwoKTsgfQorICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2b2lkIHN0b3AoKSB7IGNhbmNl
bCgpOyB9CisKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6OnJlZjsKKyAgICB1c2luZyBOZXR3
b3JrRGF0YVRhc2s6OmRlcmVmOworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6d2Vha1B0ckZh
Y3Rvcnk7CisgICAgdXNpbmcgTmV0d29ya0RhdGFUYXNrOjpXZWFrVmFsdWVUeXBlOworCitwcml2
YXRlOgorICAgIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soTmV0d29ya1Nlc3Npb24mLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmLCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBEb3dubG9hZElEKTsKKworICAgIC8vIElQQyBNZXNzYWdlCisgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBkaWRGaW5pc2goKTsKKyAgICB2b2lkIGRpZEZh
aWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKKworICAgIC8vIE5ldHdvcmtEYXRhVGFzawor
ICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKKyAgICB2
b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBmaW5hbDsKKyAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9hZExv
Y2F0aW9uKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
LCBib29sIC8qYWxsb3dPdmVyd3JpdGUqLykgZmluYWw7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCByZWZNZXNzYWdlUmVj
ZWl2ZXIoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZk1lc3NhZ2VSZWNlaXZlcigp
IGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9v
bCBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2UmJik7CisgICAgdm9pZCBkaWRGYWlsRG93bmxv
YWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmID0geyB9KTsKKyAgICB2
b2lkIGNsb3NlKCk7CisKKyAgICBXZWFrUHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bj4gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKKyAg
ICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9mZXRjaElkZW50aWZpZXI7CisgICAgRG93bmxv
YWRJRCBtX2Rvd25sb2FkSUQ7CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247Cisg
ICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3dubG9h
ZEJ5dGVzV3JpdHRlbiB7IDAgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRl
ZCB9OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZDNiZmI3Y2MzMTA5Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5vdFJl
ZkNvdW50ZWQgeworICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAg
ICBEaWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5j
cHAKaW5kZXggZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNDc3ZTg4
MjUxYmM5MDkxZGExNGJhMmEyYzMzYjM3NDNhOWUzMjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKQEAgLTMwMiw3ICszMDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpjYW5ub3RIYW5kbGUoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbmNl
bEZyb21DbGllbnQoKQogewotICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGll
bnQ6Iik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDogaXNEb25l
PSVkIiwgbV9pc0RvbmUpOworICAgIGlmIChtX2lzRG9uZSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKQEAgLTQxNiw2
ICs0MjAsMzYgQEAgTmV0d29ya1Nlc3Npb24qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNlc3Np
b24oKQogICAgIHJldHVybiBtX3N3U2VydmVyQ29ubmVjdGlvbiA/IG1fc3dTZXJ2ZXJDb25uZWN0
aW9uLT5zZXNzaW9uKCkgOiBudWxscHRyOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJ
RCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3ByZWxvYWRlciAgJiYgIW1fcHJl
bG9hZGVyLT5pc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIG1fcHJlbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChtYW5hZ2VyLCBkb3dubG9h
ZElELCByZXF1ZXN0LCByZXNwb25zZSk7CisKKyAgICBhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vz
c2lvbigpOworICAgIGlmICghc2Vzc2lvbiB8fCAhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9pc0RvbmUgPSB0cnVlOworCisgICAgLy8g
RklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgYWxpdmUgdW50
aWwgdGhlIGRvd25sb2FkIGVuZHMuCisgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s+IHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyRG93
bmxvYWRMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4obV9sb2FkZXIsICpzZXNzaW9uLCBb
Jl0oYXV0byYgY2xpZW50KSB7CisgICAgICAgIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgPSAg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6Y3JlYXRlKCpzZXNzaW9uLCBjbGllbnQsICptX3Nl
cnZpY2VXb3JrZXJDb25uZWN0aW9uLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxv
YWRJRCk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNvcHlSZWYo
KTsKKyAgICB9KTsKKworICAgIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhh
bmRsZXIgPSBbc2VydmljZVdvcmtlckRvd25sb2FkVGFzayA9IFdURk1vdmUoc2VydmljZVdvcmtl
ckRvd25sb2FkVGFzayldKGF1dG8gcG9saWN5KSB7CisgICAgICAgIGlmIChwb2xpY3kgIT0gUG9s
aWN5QWN0aW9uOjpEb3dubG9hZCkgeworICAgICAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2Fk
VGFzay0+c3RvcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2stPnN0YXJ0KCk7CisgICAgfTsKKworICAgIG1hbmFnZXIu
Y29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBXVEZNb3ZlKHNlcnZpY2VX
b3JrZXJEb3dubG9hZExvYWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCByZXF1
ZXN0LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjdW5kZWYgU1dGRVRDSF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmgKaW5kZXggYWJhOTA1NzJmMDUxZWVkOTBmMmY3YTlkNTM1MDVlMWE0ZjRl
OThjMi4uYzM0NTgwMjY3ZmIzMjY5ZTZkY2JkY2VmYzM0ZDA2ODJjNmEwODg2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgpAQCAtNTQsNiArNTUsNyBAQCBjbGFz
cyBOZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgRG93
bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29y
a1Nlc3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjsKQEAgLTg1
LDYgKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90SGFuZGxlKCk7CiAgICAgdm9pZCBj
b250ZXh0Q2xvc2VkKCk7CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFu
YWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNz
IFNob3VsZFNldFNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCBkaWRSZWNlaXZl
UmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXgg
NzFlMGNmNmM2ZGM3YmVhNTIyYzkwNjAwNTU1ZjU3MjE2MWMzYzJmNC4uMDFjMWUyNTY0YTg2MTIy
ZWI2NzFlMGY2YTg2OWZhOTg3YmUyNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0xvYWQuaCIKQEAgLTI0Miw2ICsyNDMsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvckJvZHkoQm9keUNhbGxiYWNrJiYgY2FsbGJhY2sp
CiAgICAgbV9ib2R5Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAorYm9vbCBTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRN
YW5hZ2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJ
RCwgc3RkOjpleGNoYW5nZShtX25ldHdvcmtMb2FkLCBudWxscHRyKSwgV1RGTW92ZShtX3Jlc3Bv
bnNlQ29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRlci5oCmluZGV4IDFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4
ZjFlYjQuLjhhNGYzY2RjNGE0MTYwZTlhYjc1Yjc2NTYxZjQyMWVkM2M3ZTVmNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICAi
RG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIK
QEAgLTM5LDYgKzQwLDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya0xvYWQ7CiBj
bGFzcyBOZXR3b3JrU2Vzc2lvbjsKIApAQCAtNjAsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgY29u
c3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25z
dCB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbmFi
bGVkOyB9CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERv
d25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVu
dC4KICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVu
c2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCA4YjIx
Mzg1MmQwZjExN2RlZjgxOWQ0NTJkYjdiOGZjZjQ5ZTM3NTZiLi5mMGE4OTY3NWNjMTQ0MzcwOGEw
YjY4YWM5MzFjZTc3ZmQyNWM0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Mu
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC01OSw2ICs2MCwxMCBA
QCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24oKQogICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQogICAg
ICAgICBmZXRjaC0+Y29udGV4dENsb3NlZCgpOwogCisgICAgYXV0byBkb3dubG9hZHMgPSBXVEZN
b3ZlKG1fb25nb2luZ0Rvd25sb2Fkcyk7CisgICAgZm9yIChhdXRvJiBkb3dubG9hZCA6IGRvd25s
b2Fkcy52YWx1ZXMoKSkKKyAgICAgICAgZG93bmxvYWQtPmNvbnRleHRDbG9zZWQoKTsKKwogICAg
IGlmIChtX3NlcnZlciAmJiBtX3NlcnZlci0+Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJs
ZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbigpKSA9PSB0aGlzKQogICAgICAgICBtX3NlcnZlci0+
cmVtb3ZlQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwogfQpAQCAtMTk3LDYgKzIwMiwxOSBAQCB2
b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2smIHRhcwogICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2su
ZmV0Y2hJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQor
eworICAgIEFTU0VSVCghbV9vbmdvaW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVu
dGlmaWVyKCkpKTsKKyAgICBtX29uZ29pbmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlm
aWVyKCksIHRhc2spOworICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksICZ0YXNrLCB0YXNrLmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkp
OworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckRv
d25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgbV9vbmdvaW5n
RG93bmxvYWRzLnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rp
b24uY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0YXNrLmZldGNo
SWRlbnRpZmllcigpLnRvVUludDY0KCkpOworfQorCiBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OndlYlByb2Nlc3NJZGVudGlmaWVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5k
ZXggNGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1NzZlNzUyMTEwZC4uMzM2NThjNTRjMTRm
YTRhNDQ0Yjc0MzZkZDkwYjA4NTlhMjQyYmI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg+CkBAIC03NCw4ICs3NSwx
MSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNo
VGFzayYpOwogICAgIHZvaWQgdW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sm
KTsKKyAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYp
OworICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sm
KTsKIAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVy
KCkgY29uc3Q7CisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4g
bV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6
Ok1lc3NhZ2VTZW5kZXIKQEAgLTEwMyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgV2Vha1B0cjxXZWJDb3Jl
OjpTV1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtl
ckRvd25sb2FkVGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRs
ZWFibGUgeyB0cnVlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94
eUlEOwogICAgIHNpemVfdCBtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGVlYjYwNDVmYTgzMmE5NDgzM2FlZjk1ZGUzMzUy
Zjc1Y2UzZjQ0YzMuLjZmN2RlZmQwNTMwZTU3MTVlMTU1NGVmMzE2NmQ5ZjJmZWFlMDg0OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4K
ICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KKyNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lz
dGVudENvZGVycy5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RGVjb2Rl
ci5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9n
ZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKaW5kZXggYjZkNDBhZDllOTU0N2JkNDBkZTg1Yzlj
ODVhMzVjMWUyNWNkZjE5MS4uMmEzZDZiNWVlYjI0MTQwMWM4MGVhM2JlZDgyMzgyZDAzNTY1MjM2
NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291
cmNlcy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3Vy
Y2VzLnNoCkBAIC0xNCw3ICsxNCw3IEBAIGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBd
OyB0aGVuCiAgICAgZmkKIGZpCiAKLVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTExCitVbmlm
aWVkU291cmNlQ3BwRmlsZUNvdW50PTExNQogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAK
IGlmIFsgJCMgLWVxIDAgXTsgdGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKaW5kZXggOTQyYzc2MWQzNjc1ZDljZGFkY2Y5ZGExZDQ1ZWI5M2I5ODIxMGIyNy4uOTRj
ZmQ5MDBjMzA0ZTk1Njc1MWZjMWIwMjhmZWFjM2U2NDE5MjM5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0xMTI2LDcgKzExMjYsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBpZiAoY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JU
ZXN0aW5nKCkpXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47
XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVT
VElOR19BUEkpXG4nKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQ
Ukl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUi
IFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAg
IGVsaWYgYXN5bmNfbWVzc2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQ
QVRDSF9NRVNTQUdFX0FUVFJJQlVURSkgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19B
U1lOQ19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVURSk6CiAgICAgICAgIHJlY2VpdmVfdmFyaWFu
dCA9IHJlY2VpdmVyLm5hbWUgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShMRUdBQ1lfUkVDRUlW
RVJfQVRUUklCVVRFKSBlbHNlICcnCkBAIC0xMTQ5LDcgKzExNDksNyBAQCBkZWYgZ2VuZXJhdGVf
bWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVT
U0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQogICAgICAg
ICByZXN1bHQuYXBwZW5kKCd9XG4nKQogCiAgICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1
dGUoU1RSRUFNX0FUVFJJQlVURSkgYW5kIChzeW5jX21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19h
dHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUpKToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCA1NjQ5NmRkYmE1
ZWE0NDI0ZDQyZTFmY2Y1YzI1NjMzOGVkMjg0ZTJmLi4zODQxZmFmMzE3NTYxY2MyY2IzYTQyODVh
ZjM2NTNmZjRjMjI3YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgVGVzdFdpdGhDVlBpeGVsQnVm
ZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAg
ICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUi
IFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFu
ZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1l
c3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdp
dGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmluZGV4IGNhYjU1OWY2ZTU3Yzg1N2I5MzQzNzVlYWJlNTlhN2JiNDlhZWFiNDQuLmFhYzZi
YjM1YzhlMThiOTc2YmExNjg4NTFhZjRmZjUyMzljYTU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJ
Zk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgVGVzdFdp
dGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JU
ZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNz
YWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwg
ZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01F
U1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCBhOWIwNzg5YzU5YWE5YTRlNWJiYjIxNTlhNWQxZWMwM2U1ODY3MjVj
Li4yNDU0YjNkYWU2OGQwZDQ0ZTA3NTM3ZmEzZWI4MjUzMDZlN2E0ODRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lk
IFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNz
YWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRs
ZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURf
V0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVz
Y3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
OwogfQogCiBib29sIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJl
ZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBkMWFjNjJiN2E2NTJjZjVjYzNhYjE5
OGRmNjgwOGI3ZDhmNGY3MjJkLi5jODlmNDc3ODkxNmE5NDU5YjdlOGVhN2QxMzg1MDFkMGM4NWU5
NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRp
ZFJlY2VpdmVUZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lYwogICAgIGlm
IChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJl
ZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVN
ZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDE5OWYzYzMxZjVjMDRkYzliOGY3YTc4YzIzNTI1NTEx
MTRjODM0NDEuLjUzNjM4MjM4YzNhMzZjNDQ0YzQ5ZjkyZWJjZGMxYTA2OWMzOWY2MmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhv
cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC00Myw3ICs0Myw3
IEBAIHZvaWQgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52
YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFC
TEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwg
SVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
VW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggY2RjMWVmMTYxMGRmY2ZkYTNi
ZTI3ODdlYzgzMzM5ODM2ODU4YTMwYy4uMThhZGQ4YTZmYjYwN2I3NjhhMzcwMzk4NjMzMDUwNGMy
Nzg2MmZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICBpZiAo
Y29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBk
ZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3Nh
Z2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUo
KSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGRkMmI2MWJjMzQx
MThjYzZiYjA1YzY4NzRhYjAyODIxYjhmMWI5ZTEuLjY3ODU0ZjgwOWZlNmYyYzI1NDIyYzgyMjA1
NDNhMThjMGZlMGI2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmIGNvCiAgICAgaWYgKGNvbm5l
Y3Rpb24uY29ubmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAg
ICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMg
dG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgi
VW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlv
bihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNN
ZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGMyOGU1ZThlODhjNzBkMjA5NWExM2MxODI1MGM1YzNh
Yzg0MTc5NjIuLjE5YWU5YjBjMmQ0YTI4M2EyNGI1Y2FlODNmZDI4ODAxMTEwOTA2MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRy
aWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogICAgIGlmIChjb25uZWN0aW9u
Lmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5k
aWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9u
KGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAl
IiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggMDVhODViMDE5NjA0MjAxNmFiNjg1ZjIwZDRiZWY3M2M0NjI2NTYwNy4uN2Vm
MTJiYmJjZjc1ODc1MjU5NGUzNTMwMDEzY2I4MGY3OWQyOWM5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0x
MzMsNyArMTMzLDggQEAgTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAKIAotTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKK05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKK05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAog
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5p
ZnkKQEAgLTg3NCw1ICs4NzUsNiBAQCBSZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZVZpZXdN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCitTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViTG9ja1JlZ2lzdHJ5
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZp
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA1MDg5OGU0NjMwMTczMTk0YWU0ZWY3Y2NlNDNhZThl
YjQ2NzNhODZiLi4xYjlkOTdjMzhjNDEyYTdjYzhkM2ZmYzRhNTJjYTVjZTY1Njc1NWYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE3
LDYgKzE3LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS1tbS5tCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTEwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2Vz
L1VuaWZpZWRTb3VyY2UxMTIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTExNC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTUuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTItbW0ubW0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5t
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMDNiNGVkOGNhNDRmMTc5ZmQ1OGEzZTg5YTMzYTRlODFlZDBlZDZjNS4uYTIwMmVhNmZlOGEw
YmI3N2UzYTM2Njc4NDAxM2RjZjQyNDhkYTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zOTUsNiArMzk1LDEwIEBACiAJCTFDQThC
OTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4
MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNB
RUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUQyNzQ2NUFFMzAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovOyB9OwogCQkxQ0FFQ0I2NjI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTExMS5jcHAgKi87IH07CisJCTJDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLzsg
fTsKKwkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0NBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovOyB9OworCQk0Q0FFQ0I2NjI3
NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExNC5jcHAgKi87IH07CisJCTVDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTE1LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1
LmNwcCAqLzsgfTsKIAkJMUNBRUNCNjcyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNB
RUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovOyB9OwogCQkx
Q0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MDI3NDY1QUUzMDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi87IH07CiAJCTFDQUVDQjY5Mjc0NjVBRTQw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTA0LmNwcCAqLzsgfTsKQEAgLTg4MSw3ICs4ODUsNiBAQAogCQk0MURDNDU5NjFFM0Q2
RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0
d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBM
aWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRD
bGllbnQuaCAqLzsgfTsKIAkJNDFERDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURENzJBQTI2ODIx
NjczMDBBOTBDNzEgLyogTldTUEkuaCAqLzsgfTsKLQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1
IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyog
V2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5j
cHAgKi87IH07CiAJCTQxRTI0MkUwMjZFMEM5MDgwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0
aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUUyNDJERjI2RTBDOTA0MDA5QThDNjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29hLm1t
ICovOyB9OwogCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0zMTg4LDYgKzMxOTEsMTAgQEAKIAkJMUNBOEI5NDQx
MjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUQyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5p
ZmllZFNvdXJjZTEwOS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTA5LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEx
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTEuY3BwOyBwYXRoID0gIkRl
cml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkyQ0FFQ0I1RTI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlm
aWVkU291cmNlMTEyLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMTIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMy5jcHA7IHBhdGggPSAiRGVy
aXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcCI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTRDQUVDQjVFMjc0NjVBRTMw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZp
ZWRTb3VyY2UxMTQuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTExNC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQk1Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTE1LmNwcDsgcGF0aCA9ICJEZXJp
dmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTUuY3BwIjsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUYyNzQ2NUFFMzAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmll
ZFNvdXJjZTEwOC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTA4LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBwYXRoID0gIkRlcml2
ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5jcHAiOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I2MTI3NDY1QUUzMDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVk
U291cmNlMTA0LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3Vy
Y2VzL1VuaWZpZWRTb3VyY2UxMDQuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKQEAgLTQxNjAsNiArNDE2Nyw5IEBACiAJCTQxRkNENkJEMjNDRTA0M0YwMEM2MjU2NyAv
KiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJFMjNDRTA0
NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZD
RDZCRjIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRDMjc1QTZBOTQw
MDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2Nv
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2
MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NkRDNjRCMjRBMkQ4QUQwMDYxRjM5MCAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODIwOCw2
ICs4MjE4LDEwIEBACiAJCQkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDkuY3BwICovLAogCQkJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTEwLmNwcCAqLywKIAkJCQkxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTExMS5jcHAgKi8sCisJCQkJMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTIuY3BwICovLAorCQkJCTNDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEzLmNwcCAqLywKKwkJCQk0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTExNC5jcHAgKi8sCisJCQkJNUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMTUuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsK
IAkJCXBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcyI7CkBAIC0x
MDM2MCw2ICsxMDM3NCw5IEBACiAJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNl
V29ya2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0
MUZGRDJEQTI3NUE1NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAg
Ki8sCisJCQkJNDFGRkQyREIyNzVBNTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suaCAqLywKKwkJCQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYgLyogU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMw
QzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi8sCiAJCQkJNDE1MTg1MzUyMjI3MDRG
NTAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCAqLywKIAkJCQk0MTUxODUzODIy
MjcwRjUzMDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLywK
QEAgLTE1MjUyLDcgKzE1MjY5LDYgQEAKIAkJCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyog
UmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QkNGNzBERTI2MTVEMDZFMDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAw
OUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNo
YXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4
OEUzQ0QgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEy
NDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTE1NDY4LDYgKzE1NDg0LDEwIEBACiAJCQkJMUNBRUNCNjUyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNC
NjgyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMTIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNENBRUNCNjYyNzQ2NUFF
NDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNB
RUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAppbmRleCAwYjg0YmJkMzY4ZmVjOWQ0ZGE5NjdiZmUzMTQwNjBjODAyM2JiNGRk
Li44MzIwODIwNmM2NGE2NjJhMjc5ODczZjljNjZkOTQyMmM2YWQ2NWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zOTEsNiArMzkxLDEyIEBAIGJvb2wgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmlzVGhyb3R0bGVhYmxlKCkgY29uc3QKICAgICByZXR1
cm4gbV9pc1Rocm90dGxlYWJsZTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Y29udmVydEZldGNoVG9Eb3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sK
KyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKSkKKyAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5jb252ZXJ0RmV0Y2hU
b0Rvd25sb2FkKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwor
fQorCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0
Q2hlY2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7
CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpEaWRGYWlsSGVhcnRCZWF0Q2hlY2sgeyBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciB9LCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmlu
ZGV4IGU3ZGY3ZDk0MWFjZTkwNjQxNGVjZmZmNTBjNGJhNDc5ZDE0NjRkZDUuLjA1ODBkOTgzMjI4
YTcyYmI4Yzk5NDljYTJiMWI0YzcxMThmYWM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaApAQCAtMTA2LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRVc2VyQWdl
bnQoU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRU
aHJvdHRsZVN0YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpOworICAgIHZvaWQgY29udmVydEZldGNo
VG9Eb3dubG9hZChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGNhbmNlbEZldGNoRG93bmxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIG1fcmVnaXN0cmFibGVEb21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDUyOGJlY2E0ZWE0Y2I1NzU4NmM1Zjg2ODFmZGFh
YWIyZTM3MTFkMmMuLmQ1NDFiODAzMTkyYjhkNTRkMTgyMTdmYjExMjU2ZGYwMDY5NTMwMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00
Myw2ICs0Myw4IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5v
dFJlZkNvdW50ZWQgewogICAgIFVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6
V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICAgICBDbG9zZSgpCiAgICAgU2V0VGhyb3R0bGVT
dGF0ZShib29sIGlzVGhyb3R0bGVhYmxlKQorCisgICAgQ29udmVydEZldGNoVG9Eb3dubG9hZChX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBmZWU4ZmVhN2Jj
YzhkNTljMDdlM2M1YmE0ZDYwOTU1MmE0ZDYyOGJmLi5jN2RlNDE2NjkxNzNjNDU4N2UzOTFiMjI2
NzVkYmNjYWJmZWFhMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgpAQCAtODQsNyArODUsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZl
cikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0
KCksIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRp
Zmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1
ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0
Y2hJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0
KCksIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRp
Zmllcik7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVj
ZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwNyw3
ICsxMTEsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNl
aXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBm
b3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEg
dGhyb3VnaCBJUEMuCiAgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAg
ICAgaWYgKGJsb2JVUkwuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRp
Zmllcik7CisgICAgICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVG
b3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0s
IG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9y
bURhdGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBt
X2ZldGNoSWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsx
NDIsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZl
QmxvYkNodW5rKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHMKICAgICBpZiAoIW1fY29ubmVjdGlvbikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0
aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1f
aXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0
aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+
KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCkBAIC0xNTcsNyArMTY3LDEw
IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7
IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s6OkRpZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7
CiB9CkBAIC0xNzQsNyArMTg3LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6ZGlkRmluaXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsg
fSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlk
RmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2gg
eyB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xOTQsNiAr
MjEwLDEyIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKQoreworICAgIG1faXNEb3du
bG9hZCA9IHRydWU7CisgICAgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpCiB7CiAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJG
cmFtZUxvYWRlckNsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UsIGhhcyBjb25uZWN0
aW9uICVkLCBkaWRGaW5pc2ggJWQsIHJlc3BvbnNlIHR5cGUgJWxkIiwgISFtX2Nvbm5lY3Rpb24s
IG1fZGlkRmluaXNoLCBzdGF0aWNfY2FzdDxsb25nPihtX3Jlc3BvbnNlRGF0YS5pbmRleCgpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKaW5kZXggYjM0N2NhZDJhYjVmNTcx
YjFhMGUyMDcyMDgwNDM2N2Q3NzAxODYwMC4uMDFmNjEwYmQ0MzNhMmU5YWZjOWExZmRkNTRiMDg0
MzBiOTgzN2Q3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtNTYs
NiArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAg
dm9pZCBjYW5jZWwoKSBmaW5hbDsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCkgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgZmluYWw7CiAKICAg
ICB2b2lkIGNsZWFudXAoKTsKICAgICAKQEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNl
IH07CiAgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiwgUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291
cmNlRXJyb3I+PiBtX3Jlc3BvbnNlRGF0YTsKICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNEb3dubG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBhM2RmZDNkMGVjMTE4NDA2NWU4OGNkNzAzMmYyNjE5MGE3YTZiNGFlLi5hYWQ1NTg0Mjdk
N2Y4MTM2OThlNGY4MmFhZjllMGM3NzZlMTIwZjNkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29y
a2VyIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAyMTQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBydW5uZXIg
QVBJIHRvIGxvZyB0aGUgdG90YWwgZG93bmxvYWQgc2l6ZS4KKyAgICAgICAgVGhpcyBoZWxwcyBl
bnN1cmluZyB0aGF0IHNlcnZpY2Ugd29ya2VyIGxvYWRzIGFyZSBjb3JyZWN0bHkgZG93bmxvYWRl
ZCBhbmQgZG8gbm90IHJlbHkgb24gbmV0d29ya2luZy4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHA6CisKIDIwMjEtMTItMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZp
bmQtaW4tcGFnZSBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDdjZWEwNjc2ZDI3
YjcyNzAxNTAyOTU5ZDE3ZTBjYjVjN2NlMGVjNmIuLjVmODUyOTkyMDYzNzMxZTBjMjEyOGIyMGJi
ZWY2ZmI3NzBkZWNiOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzksNiArMzks
NyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gRG93bmxvYWRzLgogICAgIHVuZGVm
aW5lZCB3YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CiAgICAgdW5kZWZpbmVkIHNldFNob3Vs
ZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRT
aG91bGRMb2dEb3dubG9hZFNpemUoYm9vbGVhbiB2YWx1ZSk7CiAKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBSRU5ERVJfVFJFRV9TSE9XX0FMTF9MQVlFUlMgICAgICAgICAgICA9IDE7CiAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSX1RSRUVfU0hPV19MQVlFUl9ORVNUSU5HICAgICAg
ICAgPSAyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggZTFmY2UyY2E1MWYxYjAyZDljNDM3YjA5OWVmNzE4MzY2MTU5
MGNjMi4uYTMyODBkZjE2Y2Q0NGY2ZDA5ODAwOGU2MTkyYTRjMTEzMDRhZTIyYSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC0xMDA4LDYgKzEwMDgsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRMb2dEb3du
bG9hZENhbGxiYWNrcyhib29sIHZhbHVlKQogICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxk
TG9nRG93bmxvYWRDYWxsYmFja3MiLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2wgdmFsdWUpCit7CisgICAgcG9zdFBhZ2VNZXNzYWdl
KCJTZXRTaG91bGRMb2dEb3dubG9hZFNpemUiLCB2YWx1ZSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0QXV0aGVudGljYXRpb25Vc2VybmFtZShKU1N0cmluZ1JlZiB1c2VybmFtZSkKIHsKICAg
ICBwb3N0UGFnZU1lc3NhZ2UoIlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiLCB0b1dLKHVzZXJu
YW1lKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCmluZGV4IDMxZjEwNmY5OTNiOGI2NzU3YTk2OTIyZDZiMGNkNGM0YzQ0NjgxYWQu
LjVjNmE5NmNhZTAxZjU5MjU1NDViOGYwNjBlYWZkZjJkNmJlMWJmMjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yMTUs
NiArMjE1LDcgQEAgcHVibGljOgogICAgIC8vIERvd25sb2FkcwogICAgIGJvb2wgc2hvdWxkRmlu
aXNoQWZ0ZXJEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRmluaXNoQWZ0ZXJEb3du
bG9hZDsgfQogICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCk7Cisg
ICAgdm9pZCBzZXRTaG91bGRMb2dEb3dubG9hZFNpemUoYm9vbCk7CiAKICAgICBib29sIHNob3Vs
ZEFsbG93RWRpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQWxsb3dFZGl0aW5nOyB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZWQyODAyZmIx
ZTc2NmRjNWRlNjdjNDRkMTU3NjYxNjMyYzM5MzFhMy4uNmI4YWNiZmRmYmM0ZTYxYTQ2MTc4N2Vj
Nzk3ZDY3MTM5NmNjMmNkZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuYXZpZ2F0aW9u
RGlkQmVjb21lRG93bmxvYWRTaGFyZWQoV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgYwogICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTCwK
ICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUsCi0gICAgICAgIG51bGxwdHIsIC8vIGRpZFdyaXRlRGF0YQorICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEsCiAgICAgICAgIFRlc3RD
b250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlzaCwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRv
d25sb2FkRGlkRmFpbAogICAgIH07CkBAIC0xMTA4LDYgKzExMDgsOCBAQCBib29sIFRlc3RDb250
cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zLCBSZQogICAgICAgICBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
KCk7CiAgICAgfQogCisgICAgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuID0geyB9OworCiAg
ICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0KIApAQCAtMjIzNyw2ICsyMjM5LDggQEAgV0tT
dHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKFdLRG93bmxvYWRSZWYKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRG
aW5pc2goV0tEb3dubG9hZFJlZikKIHsKKyAgICBpZiAobV9zaG91bGRMb2dEb3dubG9hZFNpemUp
CisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0cmluZygiRG93
bmxvYWQgc2l6ZTogIiwgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVuLnZhbHVlX29yKDApLCAi
LlxuIikpOwogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKQogICAgICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBjb21wbGV0ZWQuXG4iKTsK
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsKQEAgLTIyNjks
NiArMjI3MywxOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXSwogICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UobnVsbHB0ciwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YShsb25nIGxv
bmcgdG90YWxCeXRlc1dyaXR0ZW4pCit7CisgICAgaWYgKCFtX3Nob3VsZExvZ0Rvd25sb2FkQ2Fs
bGJhY2tzKQorICAgICAgICByZXR1cm47CisgICAgbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVu
ID0gdG90YWxCeXRlc1dyaXR0ZW47Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2Fk
RGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGxvbmcgbG9uZyBieXRlc1dyaXR0
ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNFeHBl
Y3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8
VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRvd25sb2Fk
RGlkV3JpdGVEYXRhKHRvdGFsQnl0ZXNXcml0dGVuKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxl
cjo6d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFz
b24pCiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVz
IHdoZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24gV2luZG93cywgc28KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1Y2Q0OWZhZjMwZGU3OGNjZWFjZDVh
ZDAzYzg0ODZkYzVmYzkxYzEwLi40MDNlZGMyM2U4NTBhMTQ4NGM2MTJkNTlkNGRiZGIwOTkxYTJj
MTdiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xOTAsNiAr
MTkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxi
YWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3Mg
PSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dDYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlID0gc2hvdWxkTG9nOyB9CiAgICAgdm9pZCBzZXRT
aG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0Rv
d25sb2FkQ2FsbGJhY2tzID0gc2hvdWxkTG9nOyB9CisgICAgdm9pZCBzZXRTaG91bGRMb2dEb3du
bG9hZFNpemUoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgPSBzaG91
bGRMb2c7IH0KIAogICAgIGJvb2wgaXNDdXJyZW50SW52b2NhdGlvbihUZXN0SW52b2NhdGlvbiog
aW52b2NhdGlvbikgY29uc3QgeyByZXR1cm4gaW52b2NhdGlvbiA9PSBtX2N1cnJlbnRJbnZvY2F0
aW9uLmdldCgpOyB9CiAKQEAgLTQ3Myw3ICs0NzQsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYs
IFdLVVJMUmVzcG9uc2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qgdm9pZCopOwogICAgIGJv
b2wgZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBX
S1VSTFJlcXVlc3RSZWYpOwogICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdLRG93bmxvYWRSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotICAgIAorCisgICAgdm9pZCBkb3dubG9h
ZERpZFdyaXRlRGF0YShsb25nIGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4pOworICAgIHN0YXRpYyB2
b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKFdLRG93bmxvYWRSZWYsIGxvbmcgbG9uZyBieXRlc1dy
aXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFsQnl0ZXNF
eHBlY3RlZFRvV3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCiAgICAgc3RhdGljIHZv
aWQgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1BhZ2VSZWYsICBXS1Byb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCB3ZWJQcm9jZXNzRGlk
VGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKIApAQCAtNjYzLDYgKzY2Nyw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZCB7IGZhbHNlIH07CiAKICAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkIHsgdHJ1ZSB9OworCisgICAgc3RkOjpvcHRpb25hbDxsb25nIGxvbmc+IG1fZG93bmxv
YWRUb3RhbEJ5dGVzV3JpdHRlbjsKKyAgICBib29sIG1fc2hvdWxkTG9nRG93bmxvYWRTaXplIHsg
ZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAzZGZhYzVmYzAwOWU0OTY1NDQ0ZTZiNDA5MWRiZWVi
MmUyMjFkMmJiLi43MmZhODJiYmMwMTAyOTZmMDRkMTMwZWM5YmM2YTQzNTdjYmQwZTkzIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNTM3LDYgKzUzNywx
MSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTaG91
bGRMb2dEb3dubG9hZFNpemUiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJTZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIikpIHsKICAgICAg
ICAgV0tTdHJpbmdSZWYgdXNlcm5hbWUgPSBzdHJpbmdWYWx1ZShtZXNzYWdlQm9keSk7CiAgICAg
ICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1l
KHRvV1RGU3RyaW5nKHVzZXJuYW1lKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODVhZTc0YWJiMjVlNTcyY2NmMzE5MzM3
M2Y3MjNkNWE4ZTQwMDQ0Mi4uZDNmZjhmN2RiMjI2NGYwNzUyYWMyYTJhN2FhNDE4YzVlNjQ3ZDlh
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEyLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9hZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE0MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0
cmVhbS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1k
b3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2Vy
LXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRv
d25sb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXBy
ZWxvYWQtc2NyaXB0LnB5OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRp
cmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVs
b2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMTItMDggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBM
YXllcnNdIGltcG9ydCBzb21lIG5ldyBXUFRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwppbmRleCBkNWM2NjMwYmI1MTFm
NWY3YWIyOGVkZDIxYjQwYWE4ZmMzMzQ2ZWY3Li42MDAyOTIzOWQzN2UwYzJlZmVhMjFjMjU1ZGVm
MmZhZmY3YmZiODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKQEAgLTEsMyArMSwyMSBAQAogc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmNsdWRlcygiZG93bmxvYWQtYm9keSIpKSB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0g
bmV3IFJlc3BvbnNlKCJhIGRvd25sb2FkIGJvZHkiLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1U
eXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25kV2l0
aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50LnJlcXVl
c3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1zdHJlYW0iKSkgeworICAgICAgICBjb25zdCBzdHJl
YW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IChjb250cm9sbGVy
KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2Rlcigp
OworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSgiYSBm
aXJzdCBjaHVuaywgIikpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBjb250
cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoInRoZW4gYSBzZWNvbmQgY2h1bmsiKSk7IH0s
IDEwMCk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIuY2xv
c2UoKTsgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQt
VHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdp
dGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGV2ZW50LnJlc3BvbmRX
aXRoKGZldGNoKGV2ZW50LnJlcXVlc3QudXJsKSk7CiB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJv
ZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjJlYmMyYjg2ZTY2YmIzOWM5YmMwOWQzZGE5M2Y0MDMyNDMxYmNmNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxl
bmFtZSAiZG93bmxvYWQtYm9keSIKK0Rvd25sb2FkIHNpemU6IDE1LgorRG93bmxvYWQgY29tcGxl
dGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkMmQ0ODBhOTFkYWFjMWM2ZDRkMGVlYzg5ZWNjMjg3ZjRi
YTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxk
TG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmlu
aXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdhaXQg
aW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtl
ci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9jYXRp
b24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtYm9keSI7Cit9Citkb1Rl
c3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3Ry
ZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDlhMTllYmUzN2EzMTRiM2Y1ODYyNDhhNzY2N2ZhNTBjMGYzOWZkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICJkb3dubG9hZC1zdHJlYW0iCitEb3dubG9hZCBzaXplOiAzNC4KK0Rvd25sb2Fk
IGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3M2ZlNDY5NjQwNjQzMzAzYmUwM2Zh
NzQwZGM4YzFjYmE4MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0
ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRp
c3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQor
eworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7CisgICAg
d2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2FkLXN0
cmVhbSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGQwOGVmODQ2ZDMyZjZlYzkxZDk0MjczYzljMjRlMGYwZjJjYTYyMDIuLjllMzMzZDU2
OTFlOTliYmU1ZGUzMzJiNWNhZmIxZTRmZGVjYTM3MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1
IEBACiBEb3dubG9hZCBzdGFydGVkLgogRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZp
bGVuYW1lICJkb3dubG9hZC1iaW5hcnkucHkiCitEb3dubG9hZCBzaXplOiA5LgogRG93bmxvYWQg
Y29tcGxldGVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMu
aHRtbAppbmRleCA4YzlhZGEzZmM4MTJjMzYwOTdiM2QwMzk0MTY0MDkzNWNiMjJlNzQ2Li40YTVh
YTg3YjRlYzBkM2Q3M2M5NzE2MWUwNjJmYzdkYzY4YTE3YjI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKQEAgLTcsNiArNyw3IEBACiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25s
b2FkRmluaXNoZWQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFi
bGVNSU1FVHlwZXModHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJv
dWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
LXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2
ZjM0M2M1MWQ1OWExOTdiMDJjZjVkZjMxOTczNzEzYjYzZDdhYjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQzNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxv
YWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsK
KyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtl
cjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25s
b2FkPXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2YXIg
ZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0aW9u
IHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmlnZ2Vy
QWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0ZSIp
OworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9
PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAgIGlm
ICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAgICBh
Y3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIu
cG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisK
KyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAiJnZh
bHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQgaWZy
YW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5kIHdp
bGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxvYWQg
c2luY2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8vIERv
d25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBw
cm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30K
K2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmMzQzYzUxZDU5YTE5N2IwMmNmNWRmMzE5NzM3
MTNiNjNkN2FiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGlu
ZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtc2NyaXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVk
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
ZG93bmxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmZGZlYzQyYmMzMjEyMDcwMzJjOTFm
ODQ0ODdiMjA0YmU1MTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVz
dFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25sb2Fk
VW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsKK3Zh
ciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2FkPXll
cyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2Fn
ZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVz
c2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3Rp
dmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIu
cG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VT
ZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgi
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsg
c2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAg
ICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDog
dXJsIH0pOworICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEg
fSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmcoKTsK
KworICAgIGZldGNoKHVybCArICImdmFsdWU9dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BPU1Qn
IH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIHBy
ZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQsIHRo
cm91Z2ggdGhlIHNlcnZpY2Ugd29ya2VyLgorICAgIC8vIERvd25sb2FkIHNpemUgc2hvdWxkIGJl
IHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBwcm9taXNlID0gd2l0aElmcmFtZSh1
cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJl
bG9hZC13b3JrZXIuanMKaW5kZXggZDA0YTQ5YTc4Y2Q4OTI5YTRmZDBkYjRhYjBjZWI4MDFhMDE5
NTBlOC4uNjg1MGUwMWRhOWYxYjY2ZmNjZGYzYThmMTc4OTYxMTc0M2I4MWJiZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMjMsNSAr
MjMsNyBAQCBvbmFjdGl2YXRlID0gKGV2ZW50KSA9PiB7CiB9CiAKIHNlbGYuYWRkRXZlbnRMaXN0
ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5j
bHVkZXMoIm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nIikpCisgICAgICAgIHJldHVybjsKICAgICBl
dmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7CiB9KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0
LnB5CmluZGV4IDIwNjc4MzZmNTQxNzAzZGU4NGYwOGI4ZWIzZTZjYzhjMzM4MTM5ZmUuLjEyMDYy
YjhjNWUxMzRmOWM1MDdkMjA5YTQ0NDkzYWIyNzgyMTg1MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1zY3JpcHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weQpA
QCAtMzEsNSArMzEsMTAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGlmIG5v
dCB2YWx1ZToKICAgICAgICAgdmFsdWUgPSBiIm5vdGhpbmciCiAgICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisKKyAgICBpZiBiImRvd25sb2Fk
IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50
LVR5cGUiLCBiInRleHQvdmNhcmQiKQorICAgICAgICByZXR1cm4gdmFsdWUuZGVjb2RlKCkKKwog
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQog
ICAgIHJldHVybiAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnJXMnOzwvc2Ny
aXB0PjwvYm9keT48L2h0bWw+IiAlIHZhbHVlLmRlY29kZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3Qt
cHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVj
ZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0
aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0
LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNl
cnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI3OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRo
IHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQu
cHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446524</attachid>
            <date>2021-12-09 05:14:21 -0800</date>
            <delta_ts>2021-12-13 01:46:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202142-20211209141415.patch</filename>
            <type>text/plain</type>
            <size>99230</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRmMDIyNzUwMTQ3ZDYx
Y2FmNGI4NGQ4OGVhZmY4NTRmNzBlYzRhZS4uNDkyNGE3MWI4NDk4NzU3ODM0OWFlZDcyZWU5MjNi
MjFjZjU0OGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPiBhbmQgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgogCiAgICAgICAgIE1vdmUgVGV4dENvZGVjIGZpbGVzIGZyb20gV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0IHRvIFdlYkNvcmUvUEFML3RleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWZlNDhiNGJmMGM5MzFm
YmUxZmJkNTQxNzc3NGM1YWNjNjJkNDBiMC4uMDRlYjExNGFkNTBkMjZlZThiZmFlMjJkOTRmNDBh
MTRlMzhhYWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAyMS0xMi0wOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIg
ZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrIGNsYXNzIGFzIGEgTmV0d29ya0RhdGFUYXNrIHdob3NlIHB1cnBvc2UgaXMgdG8g
ZG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgYSByZXNwb25zZSBnaXZlbiBmcm9tIHNlcnZpY2Ugd29y
a2VyLgorICAgICAgICBBZGQgYSB3YXkgdG8gY29udmVydCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
IGludG8gZG93bmxvYWRzOgorICAgICAgICAtIElmIGEgcHJlbG9hZCBpcyBvbmdvaW5nIGFuZCBj
YW4gYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiwgdXNlIHRoaXMgcHJlbG9hZCBhcyB0aGUgZG93bmxv
YWQgTmV0d29ya0xvYWQuCisgICAgICAgIC0gSWYgYSBwcmVsb2FkIGRvZXMgbm90IGV4aXN0LCBj
cmVhdGUgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIGFuZCBhIGNvcnJlc3BvbmRpbmcgTmV0
d29ya0xvYWQgdG8gc3RhcnQgZG93bmxvYWRpbmcgdGhlIHNlcnZpY2Ugd29ya2VyIHJlc3BvbnNl
IGRhdGEuCisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
LCB0aGUgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCB3aWxsIGJlIG5vdGlmaWVkIHRv
IHN0YXJ0IHNlbmRpbmcgcmVzcG9uc2UgZGF0YSB1c2luZyBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrCisgICAgICAgIGluc3RlYWQgb2YgU2VydmljZVdvcmtlckZldGNoVGFzayBtZXNzYWdlcy4g
VGhpcyBhbGxvd3MgY2FuY2VsbGluZyB0aGUgU2VydmljZVdvcmtlckZldGNoVGFzayB3aXRob3V0
IGFueSBpc3N1ZS4KKworICAgICAgICBOb3RlIHRoYXQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0
aW1lIGlzIG5vdCBhdWdtZW50ZWQ6IGlmIHRoZSBzZXJ2aWNlIHdvcmtlciBleGl0cyBkdWUgdG8g
YWxsIGl0cyBjbGllbnRzIGJlaW5nIGNsb3NlZCwgdGhlIGRvd25sb2FkIHdpbGwgZmFpbC4KKwor
ICAgICAgICBJbmNyZWFzZSB1bmlmaWVkIGJ1aWxkIGZpbGVzIHRvIDExMi4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluOiBB
ZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
ICogU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2g6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJl
Y2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2Vp
dmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VS
ZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJl
YW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0
cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVW5p
ZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50Lmg6CisKIDIwMjEtMTItMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIENvcHkgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIgZXJyb3Ig
d2hlbiBmYWlsaW5nIGl0cyBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCmluZGV4IGViMjY2YjZjMDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUy
MzBmOWJkYjk5YTVlODM4N2RmZDk2MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFu
ZGxlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZl
bnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0
MDI2NWNjMjZkYi4uZGI2YzkzYjhiZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBA
IHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIGNvbm5lY3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKKwordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRj
aFRvRG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hU
b0Rvd25sb2FkICVsbHUiLCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRv
IGNsaWVudCA9IG1fb25nb2luZ0ZldGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0
aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoW2NsaWVudCA9IFJlZiB7ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVu
dC0+Y29udmVydEZldGNoVG9Eb3dubG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAg
IGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29u
bmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaAppbmRleCAwYTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1
ZjRhLi4wMWIzYWQwNDkxNWQ0YmUyN2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYs
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291
cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElk
ZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiMWRiYmI1NTQ5ZjdhMDUxYmNjYjBk
YmUyZjIzOTlhYWJmMWFiOTIxLi4yNTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZl
MDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwK
ICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNWJhNjRi
NDRiZTFlNTc3NTA4OGZjNmU5MDU1OTljN2NkNTc4M2NkMy4uNDA0YTcyMmM3NjkwMDAwYTBmMDNi
OWE4MDBkZmM1YjdhMWUzMGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjJkYTdiNzc3MDg1
MDc1MDZmNTE4ZmY0MjhmMDc2NTYxYmRlZmFiYS4uMzY3ZTBhYzEwZjhjNTBjMGYzZjRjMTg1MTMx
OGVkYjU2NTFhYWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0zOTYsNiArMzk2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ODRmYWNkNWQ3NmZjMjRhMjdiMDdhZjQ3
MGNjM2Y5YTNjZDFjMDYwLi5iM2I3MTk3N2I0YTBhZTQxYTJiNmMwZDc1ZDM3MzdmMDkzOWE3MzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAJTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlciBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IFwKKwlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ayBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24gXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFk
NzNlNjc0MTcwLi5iODgwYjc2YjczMGVlNDU5YzNmMTlkYzI1ZmVmYTIxYTEwM2U2NjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjk1LDggKzY5NSw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChzdGQ6Om9wdGlvCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
Ci0gICAgLy8gSW4gY2FzZSBhIHJlc3BvbnNlIGlzIHNlcnZlZCBmcm9tIHNlcnZpY2Ugd29ya2Vy
LCB3ZSBkbyBub3QgaGF2ZSB5ZXQgdGhlIGFiaWxpdHkgdG8gY29udmVydCB0aGUgbG9hZC4KLSAg
ICBpZiAoIW1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09
IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgIGlmICghbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIpIHsKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+ZG93
bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChtX3Nlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVx
dWVzdCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4
IGJhYzAyMmFiNDU0MzBmNjUxYjE4OWFjMDEyMDdhMDYwNjA4YzE2NzEuLjZkZjE0MTA3MzZhYmEy
ZjJkOWExOTYxNTZjMGIxYmFmYThlNzA0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC01Niw2ICs1NiwxMyBAQCBOZXR3b3JrTG9hZDo6TmV0
d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwgQmxvYlJlZ2lzdHJ5SW1wbCogYmxv
YlJlZ2lzdAogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShuZXR3b3Jr
U2Vzc2lvbiwgKnRoaXMsIG1fcGFyYW1ldGVycyk7CiB9CiAKK05ldHdvcmtMb2FkOjpOZXR3b3Jr
TG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nl
c3Npb24sIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRh
VGFza0NsaWVudCYpPiYgY3JlYXRlVGFzaykKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAs
IG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Nlc3Npb24ubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAs
IG1fdGFzayhjcmVhdGVUYXNrKCp0aGlzKSkKK3sKK30KKwogdm9pZCBOZXR3b3JrTG9hZDo6c3Rh
cnQoKQogewogICAgIGlmICghbV90YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5oCmluZGV4IGMzNzczYzk4Nzg1NTNjZTUzNGQwNTRhYmZmZGRlYmIyOWVlMDg0
ZDIuLmI5MmY5YzYxZTEzNTkwYzQxY2JjMWQ4YjM4MjhkM2FjY2I3NTFiMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xh
c3MgTmV0d29ya0xvYWQgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWQoTmV0
d29ya0xvYWRDbGllbnQmLCBXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiYsIE5ldHdvcmtTZXNzaW9uJik7CisgICAgTmV0d29ya0xvYWQoTmV0d29ya0xv
YWRDbGllbnQmLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3Jr
RGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYpOwogICAgIH5OZXR3b3JrTG9hZCgp
OwogCiAgICAgdm9pZCBzdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU1MGNmNGFiYmU1NjRlNGNh
M2ZiNzI2Y2FhOWQ1NjljNTRiMDlkNzIuLmI4N2FkNGQzYzFjYTAzMTBkYjIzYTc5MjA4OWU1ZDE4
N2FjOGY5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4NCw2ICs0ODQsMTEgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwg
Y29uc3QgUmVzb3UKIHsKICAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnZlcnRUb0Rvd25sb2Fk
OiAoZG93bmxvYWRJRD0lIiBQUkl1NjQgIiwgaGFzTmV0d29ya0xvYWQ9JWQsIGhhc1Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXI9JWQpIiwgZG93bmxvYWRJRC50b1VJbnQ2NCgpLCAhIW1fbmV0d29y
a0xvYWQsICEhbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKTsKIAorI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyRmV0Y2hUYXNrICYmIG1fc2Vydmlj
ZVdvcmtlckZldGNoVGFzay0+Y29udmVydFRvRG93bmxvYWQobV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlm
IHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFtX25ldHdv
cmtMb2FkKSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9h
ZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCgpLCBkb3dubG9hZElELCByZXF1ZXN0
LCBtX3BhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDViNGRlOWQ2
NTBjMmZiOWM4MTVlZWZjNjkyYmM5NGUyMDYxZTAxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcApAQCAtMCwwICsxLDI2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJX
ZWJFcnJvcnMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBXb3JrUXVldWUmIHNoYXJlZFNlcnZpY2VXb3JrZXJE
b3dubG9hZFRhc2tRdWV1ZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxXb3Jr
UXVldWU+PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiU2hhcmVkIFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2sgUXVldWUiKSk7CisgICAgcmV0dXJuIHF1ZXVlLmdldCgpOworfQorCitTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG93
bmxvYWRJRCBkb3dubG9hZElEKQorICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVu
dCwgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlLCBmYWxzZSwgZmFs
c2UpCisgICAgLCBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uKQorICAgICwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKKyAgICAsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpCisgICAgLCBtX2ZldGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpCisg
ICAgLCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3Moc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSkKK3sKKyAgICBzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzazo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQoreworfQorCit2b2lk
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNsb3NlKCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKKworICAgIGlmIChtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKSB7CisgICAg
ICAgIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnVucmVnaXN0ZXJEb3dubG9hZCgqdGhpcyk7
CisgICAgICAgIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24gPSBudWxscHRyOworICAgIH0KK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrOjpzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2UmJiBtZXNzYWdlKQoreworICAgIHJldHVy
biBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID8gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+
aXBjQ29ubmVjdGlvbigpLnNlbmQoc3RkOjpmb3J3YXJkPE1lc3NhZ2U+KG1lc3NhZ2UpLCAwKSA6
IGZhbHNlOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpc3BhdGNoVG9U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAgIHNoYXJlZFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tRdWV1ZSgpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgICAgICBmdW5jdGlv
bigpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNhbmNl
bCgpCit7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBzaGFyZWRTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dIHsKKyAgICAgICAgaWYgKG1fZG93bmxvYWRGaWxlICE9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06
OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAgICAgICBtX2Rvd25sb2FkRmlsZSA9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIH0KKyAgICB9
KTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KTsKKwor
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworICAgIGNsb3NlKCk7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6cmVzdW1lKCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKK30KKwordm9pZCBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKworICAgIGNhbmNlbCgpOworfQorCit2b2lkIFNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2s6OnNldFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGNvbnN0IFdU
Rjo6U3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKKworICAgIGlmICghbmV0d29ya1Nlc3Npb24oKSkgeworICAgICAgICBzaGFy
ZWRTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkaWRGYWls
RG93bmxvYWQoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBO
ZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKGZpbGVuYW1lLCB7IH0s
IGFsbG93T3ZlcndyaXRlKTsKKworICAgIEFTU0VSVCghbV9zYW5kYm94RXh0ZW5zaW9uKTsKKyAg
ICBtX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5jb25zdW1lKCk7CisKKyAgICBzaGFyZWRTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGFsbG93T3ZlcndyaXRlICwgZmlsZW5hbWUgPSBmaWxlbmFtZS5pc29s
YXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGFsbG93T3ZlcndyaXRlICYmIEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZmlsZW5hbWUpKSB7CisgICAgICAgICAgICBpZiAoIUZpbGVT
eXN0ZW06OmRlbGV0ZUZpbGUoZmlsZW5hbWUpKSB7CisgICAgICAgICAgICAgICAgZGlkRmFpbERv
d25sb2FkKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3Bl
bmRpbmdEb3dubG9hZExvY2F0aW9uLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsK
KyAgICAgICAgaWYgKG1fZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpCisgICAgICAgICAgICBkaWRGYWlsRG93bmxvYWQoKTsKKyAgICB9KTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzdGFydCgpCit7CisgICAgQVNTRVJU
KG1fc3RhdGUgIT0gU3RhdGU6OkNvbXBsZXRlZCk7CisKKyAgICBpZiAoIXNlbmRUb1NlcnZpY2VX
b3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb252ZXJ0RmV0
Y2hUb0Rvd25sb2FkIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSkpIHsKKyAgICAgICAgc2hhcmVkU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFza1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XSgpIG11dGFibGUgeworICAgICAgICAgICAgZGlkRmFpbERvd25s
b2FkKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgYXV0byYgbWFuYWdlciA9IG1fbmV0d29ya1Byb2Nl
c3MtPmRvd25sb2FkTWFuYWdlcigpOworICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5pcXVlPERv
d25sb2FkPihtYW5hZ2VyLCBtX2Rvd25sb2FkSUQsICp0aGlzLCAqbmV0d29ya1Nlc3Npb24oKSk7
CisgICAgYXV0byogZG93bmxvYWRQdHIgPSBkb3dubG9hZC5nZXQoKTsKKyAgICBtYW5hZ2VyLmRh
dGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKG1fZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkp
OworICAgIGRvd25sb2FkUHRyLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihtX3BlbmRpbmdEb3dubG9h
ZExvY2F0aW9uKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNl
aXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgaWYgKG1f
ZG93bmxvYWRGaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNpemVfdCBieXRlc1dyaXR0ZW4gPSBGaWxlU3lzdGVtOjp3
cml0ZVRvRmlsZShtX2Rvd25sb2FkRmlsZSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKwor
ICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gZGF0YS5zaXplKCkpIHsKKyAgICAgICAgZGlkRmFpbERv
d25sb2FkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsT25NYWluUnVuTG9v
cChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGJ5dGVzV3JpdHRlbl0gewor
ICAgICAgICBtX2Rvd25sb2FkQnl0ZXNXcml0dGVuICs9IGJ5dGVzV3JpdHRlbjsKKyAgICAgICAg
aWYgKGF1dG8qIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCku
ZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlk
UmVjZWl2ZURhdGEoYnl0ZXNXcml0dGVuLCBtX2Rvd25sb2FkQnl0ZXNXcml0dGVuLCAwKTsKKyAg
ICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9y
bURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgQVNT
RVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgd3JpdGluZyBm
b3JtRGF0YSBpbiBkb3dubG9hZHMuCisgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtl
ciwgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YSBub3QgaW1w
bGVtZW50ZWQiKTsKKyAgICBkaWRGYWlsRG93bmxvYWQoKTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpkaWRGaW5pc2goKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9v
cCgpKTsKKworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAg
bV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwor
CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XSB7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOworICAgICAgICBjbG9z
ZSgpOworCisgICAgICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbi0+cmV2b2tlKCk7CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b24gPSBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8gZG93bmxvYWQgPSBt
X25ldHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdEb3du
bG9hZElEKSkKKyAgICAgICAgICAgIGRvd25sb2FkLT5kaWRGaW5pc2goKTsKKworICAgICAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRoRXJyb3Io
eyB9KTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRG
YWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3Ao
KSk7CisKKyAgICBkaWRGYWlsRG93bmxvYWQoV1RGTW92ZShlcnJvcikpOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpZEZhaWxEb3dubG9hZChzdGQ6Om9wdGlvbmFsPFJl
c291cmNlRXJyb3I+JiYgZXJyb3IpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwor
CisgICAgaWYgKG1fZG93bmxvYWRGaWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZG93bmxvYWRGaWxl
KTsKKyAgICAgICAgbV9kb3dubG9hZEZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOworICAgIH0KKworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgZXJyb3IgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShl
cnJvcikpXSB7CisgICAgICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpDb21wbGV0ZWQpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7Cisg
ICAgICAgIGNsb3NlKCk7CisKKyAgICAgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAg
ICAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgICAgIG1fc2Fu
ZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlc291
cmNlRXJyb3IgPSBlcnJvci52YWx1ZV9vcihjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkp
OworICAgICAgICBpZiAoYXV0byBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2Fk
TWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93
bmxvYWQtPmRpZEZhaWwocmVzb3VyY2VFcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlKCkpOworCisg
ICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdp
dGhFcnJvcihyZXNvdXJjZUVycm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25s
b2FkVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjU5ZWFlNTI2NjUzMDYyMTJh
MjhlOTMyM2EyYjhiNGZmZTBjNzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApA
QCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5
c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0xvYWQ7CitjbGFzcyBOZXR3b3Jr
UHJvY2VzczsKK2NsYXNzIFNhbmRib3hFeHRlbnNpb247CitjbGFzcyBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb247CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgOiBwdWJs
aWMgTmV0d29ya0RhdGFUYXNrLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCogbmV3IFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2soc2Vzc2lvbiwgY2xpZW50LCBjb25uZWN0aW9uLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRl
bnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJRCkpOyB9CisgICAgflNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2soKTsKKworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoSWRlbnRpZmllcjsgfQorICAgIHZvaWQgY29udGV4
dENsb3NlZCgpIHsgY2FuY2VsKCk7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9w
KCkgeyBjYW5jZWwoKTsgfQorCisgICAgdXNpbmcgTmV0d29ya0RhdGFUYXNrOjpyZWY7CisgICAg
dXNpbmcgTmV0d29ya0RhdGFUYXNrOjpkZXJlZjsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6
OndlYWtQdHJGYWN0b3J5OworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6V2Vha1ZhbHVlVHlw
ZTsKKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKE5ldHdvcmtTZXNz
aW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgRG93bmxvYWRJRCk7CisKKyAgICAvLyBJUEMgTWVzc2Fn
ZQorICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29u
c3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkRmluaXNoKCk7CisgICAg
dm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisKKyAgICAvLyBOZXR3b3Jr
RGF0YVRhc2sKKyAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmlu
YWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCkgZmluYWw7CisgICAgU3RhdGUgc3Rh
dGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRQZW5kaW5n
RG93bmxvYWRMb2NhdGlvbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiwgYm9vbCAvKmFsbG93T3ZlcndyaXRlKi8pIGZpbmFsOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpc3BhdGNoVG9U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgcmVm
TWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZNZXNzYWdl
UmVjZWl2ZXIoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
c3NhZ2U+IGJvb2wgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYpOworICAgIHZvaWQgZGlk
RmFpbERvd25sb2FkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4mJiA9IHsg
fSk7CisgICAgdm9pZCBjbG9zZSgpOworCisgICAgV2Vha1B0cjxXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24+IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKKyAgICBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI7CisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIG1fZmV0Y2hJZGVudGlmaWVyOwor
ICAgIERvd25sb2FkSUQgbV9kb3dubG9hZElEOworICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9u
ZXR3b3JrUHJvY2VzczsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0
ZW5zaW9uOworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2Rvd25sb2FkRmls
ZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKKyAgICBpbnQ2NF90
IG1fZG93bmxvYWRCeXRlc1dyaXR0ZW4geyAwIH07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRl
OjpTdXNwZW5kZWQgfTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzYmZiN2NjMzEwOTc5OWNjODAwMWJiYTcxZDg5YzBmNmYy
ZDkyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMzIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzayBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
IGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVjZWl2ZUZvcm1EYXRh
KElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBEaWRGaW5pc2goKQorfQorCisjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwCmluZGV4IDZhYjIzNjQ1MTMyNDQ4YTM1OWQyOTg4OTdmNDUzMzBjYmQyMmQz
YjUuLjRlNzkxOWIzZGRjMDJhZTE0ZDBlZDk2ODRiOGM2OGJiNmYyOGE0MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCkBAIC0zMDIsNyArMzAzLDEwIEBAIHZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6Y2Fubm90SGFuZGxlKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpjYW5jZWxGcm9tQ2xpZW50KCkKIHsKLSAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5j
ZWxGcm9tQ2xpZW50OiIpOworICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGll
bnQ6IGlzRG9uZT0lZCIsIG1faXNEb25lKTsKKyAgICBpZiAobV9pc0RvbmUpCisgICAgICAgIHJl
dHVybjsKKwogICAgIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pOwogfQog
CkBAIC00MTgsNiArNDIyLDM2IEBAIE5ldHdvcmtTZXNzaW9uKiBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpzZXNzaW9uKCkKICAgICByZXR1cm4gbV9zd1NlcnZlckNvbm5lY3Rpb24gPyBtX3N3U2Vy
dmVyQ29ubmVjdGlvbi0+c2Vzc2lvbigpIDogbnVsbHB0cjsKIH0KIAorYm9vbCBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1hbmFnZXImIG1hbmFnZXIs
IERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9wcmVsb2FkZXIg
ICYmICFtX3ByZWxvYWRlci0+aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBtX3ByZWxvYWRlci0+Y29udmVydFRvRG93bmxvYWQobWFuYWdl
ciwgZG93bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOworCisgICAgYXV0byogc2Vzc2lvbiA9
IHRoaXMtPnNlc3Npb24oKTsKKyAgICBpZiAoIXNlc3Npb24gfHwgIW1fc2VydmljZVdvcmtlckNv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1faXNEb25lID0gdHJ1ZTsK
KworICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIGtlZXAgdGhlIHNlcnZpY2Ugd29ya2Vy
IGFsaXZlIHVudGlsIHRoZSBkb3dubG9hZCBlbmRzLgorICAgIFJlZlB0cjxTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrPiBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOworICAgIGF1dG8gc2Vydmlj
ZVdvcmtlckRvd25sb2FkTG9hZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KG1fbG9hZGVyLCAq
c2Vzc2lvbiwgWyZdKGF1dG8mIGNsaWVudCkgeworICAgICAgICBzZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrID0gIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNyZWF0ZSgqc2Vzc2lvbiwgY2xp
ZW50LCAqbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlcXVl
c3QsIGRvd25sb2FkSUQpOworICAgICAgICByZXR1cm4gc2VydmljZVdvcmtlckRvd25sb2FkVGFz
ay5jb3B5UmVmKCk7CisgICAgfSk7CisKKyAgICBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyIGNv
bXBsZXRpb25IYW5kbGVyID0gW3NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgPSBXVEZNb3ZlKHNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2spXShhdXRvIHBvbGljeSkgeworICAgICAgICBpZiAocG9s
aWN5ICE9IFBvbGljeUFjdGlvbjo6RG93bmxvYWQpIHsKKyAgICAgICAgICAgIHNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2stPnN0b3AoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLT5zdGFydCgpOworICAgIH07CisKKyAg
ICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwgV1RGTW92
ZShzZXJ2aWNlV29ya2VyRG93bmxvYWRMb2FkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHsgfSwgcmVxdWVzdCwgcmVzcG9uc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFNXRkVUQ0hfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5oCmluZGV4IGFiYTkwNTcyZjA1MWVlZDkwZjJmN2E5ZDUz
NTA1ZTFhNGY0ZTk4YzIuLmMzNDU4MDI2N2ZiMzI2OWU2ZGNiZGNlZmMzNGQwNjgyYzZhMDg4NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KQEAgLTU0LDYgKzU1
LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIERvd25sb2FkTWFuYWdlcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNs
YXNzIE5ldHdvcmtTZXNzaW9uOwogY2xhc3MgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXI7CkBAIC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbm5vdEhhbmRsZSgpOwog
ICAgIHZvaWQgY29udGV4dENsb3NlZCgpOwogCisgICAgYm9vbCBjb252ZXJ0VG9Eb3dubG9hZChE
b3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisKIHByaXZhdGU6CiAgICAg
ZW51bSBjbGFzcyBTaG91bGRTZXRTb3VyY2UgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIu
Y3BwCmluZGV4IDcxZTBjZjZjNmRjN2JlYTUyMmM5MDYwMDU1NWY1NzIxNjFjM2MyZjQuLjAxYzFl
MjU2NGE4NjEyMmViNjcxZTBmNmE4NjlmYTk4N2JlMjZkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRG93bmxvYWRN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5o
IgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCkBAIC0yNDIsNiArMjQzLDE1IEBAIHZvaWQgU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OndhaXRGb3JCb2R5KEJvZHlDYWxsYmFjayYm
IGNhbGxiYWNrKQogICAgIG1fYm9keUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAK
K2Jvb2wgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2Fk
KERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmICghbV9uZXR3b3JrTG9hZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgbWFuYWdlci5jb252ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2Fk
KGRvd25sb2FkSUQsIHN0ZDo6ZXhjaGFuZ2UobV9uZXR3b3JrTG9hZCwgbnVsbHB0ciksIFdURk1v
dmUobV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCByZXF1ZXN0LCByZXNwb25zZSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaAppbmRleCAxZTc4YzJjZWZhMTU0ODQxMDQwNjBmM2Ix
OWRjNTBlNmNiOGYxZWI0Li44YTRmM2NkYzRhNDE2MGU5YWI3NWI3NjU2MWY0MjFlZDNjN2U1ZjU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisj
aW5jbHVkZSAgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgiCkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIERvd25sb2FkTWFuYWdlcjsKIGNsYXNzIE5ldHdv
cmtMb2FkOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiAKQEAgLTYwLDYgKzYyLDggQEAgcHVibGlj
OgogICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRy
aWNzKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KICAgICBib29sIGlz
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGUuZW5hYmxlZDsgfQogCisgICAgYm9vbCBjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1h
bmFnZXImLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisKIHByaXZhdGU6CiAgICAgLy8gTmV0d29y
a0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0
ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBmaW5hbCB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
aW5kZXggOGIyMTM4NTJkMGYxMTdkZWY4MTlkNDUyZGI3YjhmY2Y0OWUzNzU2Yi4uZjBhODk2NzVj
YzE0NDM3MDhhMGI2OGFjOTMxY2U3N2ZkMjVjNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNTks
NiArNjAsMTAgQEAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp+V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uKCkKICAgICBmb3IgKGF1dG8mIGZldGNoIDogZmV0Y2hlcy52YWx1
ZXMoKSkKICAgICAgICAgZmV0Y2gtPmNvbnRleHRDbG9zZWQoKTsKIAorICAgIGF1dG8gZG93bmxv
YWRzID0gV1RGTW92ZShtX29uZ29pbmdEb3dubG9hZHMpOworICAgIGZvciAoYXV0byYgZG93bmxv
YWQgOiBkb3dubG9hZHMudmFsdWVzKCkpCisgICAgICAgIGRvd25sb2FkLT5jb250ZXh0Q2xvc2Vk
KCk7CisKICAgICBpZiAobV9zZXJ2ZXIgJiYgbV9zZXJ2ZXItPmNvbnRleHRDb25uZWN0aW9uRm9y
UmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4oKSkgPT0gdGhpcykKICAgICAgICAg
bV9zZXJ2ZXItPnJlbW92ZUNvbnRleHRDb25uZWN0aW9uKCp0aGlzKTsKIH0KQEAgLTE5Nyw2ICsy
MDIsMTkgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVucmVnaXN0ZXJG
ZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXMKICAgICBtX29uZ29pbmdGZXRjaGVzLnJl
bW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFz
ayYgdGFzaykKK3sKKyAgICBBU1NFUlQoIW1fb25nb2luZ0Rvd25sb2Fkcy5jb250YWlucyh0YXNr
LmZldGNoSWRlbnRpZmllcigpKSk7CisgICAgbV9vbmdvaW5nRG93bmxvYWRzLmFkZCh0YXNrLmZl
dGNoSWRlbnRpZmllcigpLCB0YXNrKTsKKyAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLmFk
ZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFz
azo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAmdGFzaywgdGFzay5mZXRjaElkZW50aWZpZXIoKS50
b1VJbnQ2NCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVu
cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAg
IG1fb25nb2luZ0Rvd25sb2Fkcy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZpZXIoKSk7CisgICAg
bV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGFzay5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKK30KKwogV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp3ZWJQcm9jZXNzSWRl
bnRpZmllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29ubmVjdGlvbi53ZWJQcm9jZXNzSWRl
bnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCmluZGV4IDRhMGIxNTM3MWZmOTY3MTU5ZGZlNjYxMjU4ZTQ1NTc2ZTc1MjExMGQuLjMz
NjU4YzU0YzE0ZmE0YTQ0NGI3NDM2ZGQ5MGIwODU5YTI0MmJiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oPgpAQCAt
NzQsOCArNzUsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3RlckZldGNoKFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2smKTsKICAgICB2b2lkIHVucmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrJik7CisgICAgdm9pZCByZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2smKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrJik7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllcigpIGNvbnN0OworICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcygp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CiAg
ICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCkBAIC0xMDMsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAg
ICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFdlYWtQ
dHI8V2ViQ29yZTo6U1dTZXJ2ZXI+IG1fc2VydmVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdG
ZXRjaGVzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+PiBtX29uZ29pbmdEb3dubG9hZHM7CiAgICAgYm9vbCBt
X2lzVGhyb3R0bGVhYmxlIHsgdHJ1ZSB9OwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93
ZWJQYWdlUHJveHlJRDsKICAgICBzaXplX3QgbV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50IHsg
MCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQt
c291cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2gKaW5kZXggYjZkNDBhZDllOTU0N2JkNDBkZTg1YzljODVhMzVjMWUyNWNkZjE5MS4uMmEz
ZDZiNWVlYjI0MTQwMWM4MGVhM2JlZDgyMzgyZDAzNTY1MjM2NCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3ICsxNCw3
IEBAIGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkKIGZpCiAK
LVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTExCitVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50
PTExNQogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhl
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDkzMGNmOTE3
YmE3OTBlNTc1ZDg0Yjk2OWVhYzA1ODFmNTJmNTE2ZS4uOGE0NzQ5Y2Q0NGJkZDQ5ZThjNmU5MjY0
MGFhNDdjYzE3MTdiZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CkBAIC0xMTI1LDcgKzExMjUsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJl
Y2VpdmVyKToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5j
b25uZWN0aW9uKCkuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRl
Y29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FH
RSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4n
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAgIGVsaWYgYXN5bmNfbWVzc2FnZXMg
b3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVU
RSkgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19BU1lOQ19ESVNQQVRDSF9NRVNTQUdF
X0FUVFJJQlVURSk6CiAgICAgICAgIHJlY2VpdmVfdmFyaWFudCA9IHJlY2VpdmVyLm5hbWUgaWYg
cmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShMRUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFKSBlbHNlICcn
CkBAIC0xMTQ4LDcgKzExNDgsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2Vp
dmVyKToKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAoY29ubmVjdGlvbi5pZ25v
cmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5k
aWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3Nh
Z2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4n
KQogCiAgICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FUVFJJQlVURSkg
YW5kIChzeW5jX21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFU
Q0hfTUVTU0FHRV9BVFRSSUJVVEUpKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVy
TWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCA1NjQ5NmRkYmE1ZWE0NDI0ZDQyZTFmY2Y1YzI1NjMz
OGVkMjg0ZTJmLi4zODQxZmFmMzE3NTYxY2MyY2IzYTQyODVhZjM2NTNmZjRjMjI3YzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01
Myw3ICs1Myw3IEBAIHZvaWQgVGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiAgICAgaWYgKGNvbm5lY3Rpb24u
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRp
ZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRI
X01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24o
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUi
IFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNz
YWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGNhYjU1OWY2ZTU3
Yzg1N2I5MzQzNzVlYWJlNTlhN2JiNDlhZWFiNDQuLmFhYzZiYjM1YzhlMThiOTc2YmExNjg4NTFh
ZjRmZjUyMzljYTU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2
ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgVGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYg
KGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwg
ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklE
KCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNz
YWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBhOWIw
Nzg5YzU5YWE5YTRlNWJiYjIxNTlhNWQxZWMwM2U1ODY3MjVjLi4yNDU0YjNkYWU2OGQwZDQ0ZTA3
NTM3ZmEzZWI4MjUzMDZlN2E0ODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2Fn
ZVJlY2VpdmVyLmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFRlc3RXaXRoSW1hZ2VEYXRhOjpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjbwog
ICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAg
ICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQ
Ukl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRs
ZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRo
SW1hZ2VEYXRhOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBs
eUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcAppbmRleCBkMWFjNjJiN2E2NTJjZjVjYzNhYjE5OGRmNjgwOGI3ZDhmNGY3MjJkLi5j
ODlmNDc3ODkxNmE5NDU5YjdlOGVhN2QxMzg1MDFkMGM4NWU5NmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEzNSw3ICsxMzUs
NyBAQCB2b2lkIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lYwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdF
KCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVT
eW5jVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBs
eUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwCmlu
ZGV4IDE5OWYzYzMxZjVjMDRkYzliOGY3YTc4YzIzNTI1NTExMTRjODM0NDEuLjUzNjM4MjM4YzNh
MzZjNDQ0YzQ5ZjkyZWJjZGMxYTA2OWMzOWY2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhv
cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgVGVzdFdpdGhTZW1h
cGhvcmU6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5n
KCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wg
VGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKaW5kZXggY2RjMWVmMTYxMGRmY2ZkYTNiZTI3ODdlYzgzMzM5ODM2ODU4YTMw
Yy4uMThhZGQ4YTZmYjYwN2I3NjhhMzcwMzk4NjMzMDUwNGMyNzg2MmZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1l
c3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZh
bGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgi
VW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1l
c3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJ
UEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRp
b25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGRkMmI2MWJjMzQxMThjYzZiYjA1YzY4NzRhYjAyODIx
YjhmMWI5ZTEuLjY3ODU0ZjgwOWZlNmYyYzI1NDIyYzgyMjA1NDNhMThjMGZlMGI2NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZv
aWQgVGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2UmIGNvCiAgICAgaWYgKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmln
bm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYg
Ly8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNz
YWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCmlu
ZGV4IGMyOGU1ZThlODhjNzBkMjA5NWExM2MxODI1MGM1YzNhYzg0MTc5NjIuLjE5YWU5YjBjMmQ0
YTI4M2EyNGI1Y2FlODNmZDI4ODAxMTEwOTA2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0
QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFRl
c3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OgogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdl
Rm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNU
SU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQg
bWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUo
KSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3Jp
cHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwog
fQogCiBib29sIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVS
ZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDVhODViMDE5
NjA0MjAxNmFiNjg1ZjIwZDRiZWY3M2M0NjI2NTYwNy4uN2VmMTJiYmJjZjc1ODc1MjU5NGUzNTMw
MDEzY2I4MGY3OWQyOWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMzMsNyArMTMzLDggQEAgTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b25uZWN0aW9uLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5j
cHAKIAotTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcCBAbm8tdW5pZnkKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5jcHAKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5pZnkKQEAgLTg3NCw1ICs4NzUsNiBA
QCBSZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCiBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcAogV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApp
bmRleCA1MDg5OGU0NjMwMTczMTk0YWU0ZWY3Y2NlNDNhZThlYjQ2NzNhODZiLi4xYjlkOTdjMzhj
NDEyYTdjYzhkM2ZmYzRhNTJjYTVjZTY1Njc1NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvVW5p
ZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE3LDYgKzE3LDEwIEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMS1tbS5tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTEwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1Vu
aWZpZWRTb3VyY2UxMTUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzJlZTRmOWZhOGNiYzVhZmM2
YmIwMjQ2ODMyNGViZWQyY2ZhYWYyZS4uZTIzZWI1NzRmYzk1N2JlYjE1NTNmZWIyYmFmZWRiMDU4
NDI0OTZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zOTUsNiArMzk1LDEwIEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAv
KiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNw
ZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDkuY3BwICovOyB9OwogCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi87IH07CisJ
CTJDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQUVDQjVFMjc0NjVBRTMw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLzsgfTsKKwkJM0NBRUNCNjYyNzQ2NUFF
NDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMTMuY3BwICovOyB9OworCQk0Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAg
Ki87IH07CisJCTVDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQUVDQjVF
Mjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLzsgfTsKIAkJMUNBRUNC
NjcyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovOyB9OwogCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMC5jcHAgKi87IH07CiAJCTFDQUVDQjY5Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTA0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLzsgfTsK
QEAgLTg4MSw3ICs4ODUsNiBAQAogCQk0MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyogTmV0d29y
a1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87
IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTlB
MUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsKIAkJNDFE
RDcyQUIyNjgyMTY3MzAwQTkwQzcxIC8qIE5XU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURENzJBQTI2ODIxNjczMDBBOTBDNzEgLyogTldTUEku
aCAqLzsgfTsKLQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICov
OyB9OwogCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVBQzIy
NTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTQxRTI0MkUw
MjZFMEM5MDgwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUyNDJERjI2RTBDOTA0MDA5
QThDNjQgLyogTmV0d29ya1JUQ1V0aWxpdGllc0NvY29hLm1tICovOyB9OwogCQk0MUYwNjBFMTE2
NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjBERDE2NTQz
MTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CkBAIC0zMTk1LDYgKzMxOTgsMTAgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdl
Ykluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdC9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMDkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOS5jcHA7IHBh
dGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTA5LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjVF
Mjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVuaWZpZWRTb3VyY2UxMTEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQkyQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTExMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEyLmNwcDsgcGF0
aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MTIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJM0NBRUNCNUUy
NzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVW5pZmllZFNvdXJjZTExMy5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTE0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTQuY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
NC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1Q0FFQ0I1RTI3
NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVbmlmaWVkU291cmNlMTE1LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTUuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOC5jcHA7IHBhdGgg
PSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4
LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjYwMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTEwNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA0LmNwcDsgcGF0aCA9
ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDQu
Y3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQxNjcsNiArNDE3
NCw5IEBACiAJCTQxRkNENkJEMjNDRTA0M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZDRDZCRjIzQ0UwNDQwMDBDNjI1Njcg
LyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJC
RiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURD
M0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRBMkQ4QUQwMDYx
RjM5MCAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODIyMSw2ICs4MjMxLDEwIEBACiAJCQkJMUNB
RUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovLAogCQkJCTFD
QUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLywKIAkJCQkx
Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi8sCisJCQkJ
MkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwICovLAorCQkJ
CTNDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEzLmNwcCAqLywKKwkJ
CQk0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgKi8sCisJ
CQkJNUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovLAog
CQkJKTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAiRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcyI7CkBAIC0xMDM3NSw2ICsxMDM4OSw5IEBACiAJ
CTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUZGRDJEQTI3NUE1NjBCMDA1MDFC
QkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8sCisJCQkJNDFGRkQyREIyNzVB
NTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCAqLywKKwkJCQk0MUZG
RDJEQzI3NUE2QTk0MDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdl
cy5pbiAqLywKIAkJCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZl
dGNoVGFzay5jcHAgKi8sCiAJCQkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2suaCAqLywKIAkJCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2Vy
dmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLywKQEAgLTE1Mjc4LDcgKzE1Mjk1LDYg
QEAKIAkJCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QkNGNzBERTI2MTVE
MDZFMDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdENvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGlt
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFERTdDNkMyMjI3
OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVy
Q29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5ODE2NEMgLyog
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NDg5LDYg
KzE1NTA1LDEwIEBACiAJCQkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjgyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBRUNCNjYyNzQ2NUFF
NDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNB
RUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNENBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4QTFGQzAyM0E1
NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA4ZDc0
NDA1YmVlYmNhZDU1MGQ3YzE1ZDk3Y2UyNDIyNmZkMjBkNWYxLi4wM2VlYjhiMmQ4MTMxMGY5ZTk2
NzdmZjNiMGMwZTk0YzM0NGY2ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCkBAIC0zOTMsNiArMzkzLDEyIEBAIGJvb2wgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmlzVGhyb3R0bGVhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsK
IH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29udmVydEZldGNoVG9E
b3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKKyAgICAgICAgc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LT5jb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2soU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpEaWRGYWlsSGVhcnRCZWF0Q2hlY2sgeyBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IGU3ZGY3ZDk0MWFjZTkwNjQx
NGVjZmZmNTBjNGJhNDc5ZDE0NjRkZDUuLjA1ODBkOTgzMjI4YTcyYmI4Yzk5NDljYTJiMWI0Yzcx
MThmYWM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtMTA2LDYgKzEw
Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50
KTsKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRUaHJvdHRsZVN0YXRlKGJvb2wgaXNU
aHJvdHRsZWFibGUpOworICAgIHZvaWQgY29udmVydEZldGNoVG9Eb3dubG9hZChXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNhbmNlbEZldGNoRG93
bmxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub05ldHdv
cmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVE
b21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CmluZGV4IDUyOGJlY2E0ZWE0Y2I1NzU4NmM1Zjg2ODFmZGFhYWIyZTM3MTFkMmMuLmQ1NDFiODAz
MTkyYjhkNTRkMTgyMTdmYjExMjU2ZGYwMDY5NTMwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00Myw2ICs0Myw4IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVw
ZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBz
dG9yZSkKICAgICBDbG9zZSgpCiAgICAgU2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0bGVh
YmxlKQorCisgICAgQ29udmVydEZldGNoVG9Eb3dubG9hZChXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBmZWU4ZmVhN2JjYzhkNTljMDdlM2M1YmE0ZDYwOTU1
MmE0ZDYyOGJmLi5jN2RlNDE2NjkxNzNjNDU4N2UzOTFiMjI2NzVkYmNjYWJmZWFhMjhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAog
CiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAt
ODQsNyArODUsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRS
ZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0
X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNE
b3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nh
c3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBl
bHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0
X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNo
KFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwNyw3ICsxMTEsMTAgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2go
UmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMs
IHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMuCiAgICAgVVJM
IGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAgaWYgKGJsb2JVUkwuaXNOdWxs
KCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsg
V1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgICAgIGlmICht
X2lzRG93bmxvYWQpCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxNDIsMTAgQEAgdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5rKGNvbnN0IHVpbnQ4
X3QqIGRhdGEsIHMKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpE
aWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXpl
KSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpE
aWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXpl
KSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsg
eyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRG
aW5pc2hCbG9iTG9hZGluZygpCkBAIC0xNTcsNyArMTY3LDEwIEBAIHZvaWQgV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBt
X2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xNzQsNyArMTg3LDEw
IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIp
OworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElk
ZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmll
cik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xOTQsNiArMjEwLDEyIEBAIHZvaWQgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkKICAgICBtX2Nvbm5lY3Rpb24gPSBu
dWxscHRyOwogfQogCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNvbnZl
cnRGZXRjaFRvRG93bmxvYWQoKQoreworICAgIG1faXNEb3dubG9hZCA9IHRydWU7CisgICAgY29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7CiAgICAgUkVMRUFT
RV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudDo6Y29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UsIGhhcyBjb25uZWN0aW9uICVkLCBkaWRGaW5pc2ggJWQs
IHJlc3BvbnNlIHR5cGUgJWxkIiwgISFtX2Nvbm5lY3Rpb24sIG1fZGlkRmluaXNoLCBzdGF0aWNf
Y2FzdDxsb25nPihtX3Jlc3BvbnNlRGF0YS5pbmRleCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmgKaW5kZXggYjM0N2NhZDJhYjVmNTcxYjFhMGUyMDcyMDgwNDM2N2Q3NzAx
ODYwMC4uMDFmNjEwYmQ0MzNhMmU5YWZjOWExZmRkNTRiMDg0MzBiOTgzN2Q3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsK
ICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgZmluYWw7CisgICAgdm9pZCBj
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgZmluYWw7CiAKICAgICB2b2lkIGNsZWFudXAoKTsKICAg
ICAKQEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNlIH07CiAgICAgc3RkOjp2YXJpYW50
PHN0ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgUmVmPFdlYkNvcmU6
OkZvcm1EYXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+PiBtX3Jlc3BvbnNl
RGF0YTsKICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEb3du
bG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhOGU4NzFiMGFmMWEzNGIw
NTcyMDAxYjNjYTM3OWQ2MGI5MTA1ZTI5Li5mNGNlZDljZTgwNGMzZjYyNDMzYmNhZTA5YzBjZTY3
YjI5YTAxYTFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBydW5uZXIgQVBJIHRvIGxvZyB0aGUgdG90YWwg
ZG93bmxvYWQgc2l6ZS4KKyAgICAgICAgVGhpcyBoZWxwcyBlbnN1cmluZyB0aGF0IHNlcnZpY2Ug
d29ya2VyIGxvYWRzIGFyZSBjb3JyZWN0bHkgZG93bmxvYWRlZCBhbmQgZG8gbm90IHJlbHkgb24g
bmV0d29ya2luZy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisK
IDIwMjEtMTItMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4gYW5k
IERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBNb3ZlIFRl
eHRDb2RlYyBmaWxlcyBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dCB0byBXZWJDb3JlL1BBTC90
ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA3Y2VhMDY3NmQyN2I3MjcwMTUwMjk1
OWQxN2UwY2I1YzdjZTBlYzZiLi41Zjg1Mjk5MjA2MzczMWUwYzIxMjhiMjBiYmVmNmZiNzcwZGVj
Yjk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTM5LDYgKzM5LDcgQEAgaW50ZXJm
YWNlIFRlc3RSdW5uZXIgewogICAgIC8vIERvd25sb2Fkcy4KICAgICB1bmRlZmluZWQgd2FpdFVu
dGlsRG93bmxvYWRGaW5pc2hlZCgpOwogICAgIHVuZGVmaW5lZCBzZXRTaG91bGRMb2dEb3dubG9h
ZENhbGxiYWNrcyhib29sZWFuIHZhbHVlKTsKKyAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93
bmxvYWRTaXplKGJvb2xlYW4gdmFsdWUpOwogCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVO
REVSX1RSRUVfU0hPV19BTExfTEFZRVJTICAgICAgICAgICAgPSAxOwogICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFJFTkRFUl9UUkVFX1NIT1dfTEFZRVJfTkVTVElORyAgICAgICAgID0gMjsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCmluZGV4IGUxZmNlMmNhNTFmMWIwMmQ5YzQzN2IwOTllZjcxODM2NjE1OTBjYzIuLmEzMjgw
ZGYxNmNkNDRmNmQwOTgwMDhlNjE5MmE0YzExMzA0YWUyMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTAwOCw2
ICsxMDA4LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFj
a3MoYm9vbCB2YWx1ZSkKICAgICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25sb2Fk
Q2FsbGJhY2tzIiwgdmFsdWUpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rv
d25sb2FkU2l6ZShib29sIHZhbHVlKQoreworICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxk
TG9nRG93bmxvYWRTaXplIiwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhl
bnRpY2F0aW9uVXNlcm5hbWUoSlNTdHJpbmdSZWYgdXNlcm5hbWUpCiB7CiAgICAgcG9zdFBhZ2VN
ZXNzYWdlKCJTZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIiwgdG9XSyh1c2VybmFtZSkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApp
bmRleCAzMWYxMDZmOTkzYjhiNjc1N2E5NjkyMmQ2YjBjZDRjNGM0NDY4MWFkLi41YzZhOTZjYWUw
MWY1OTI1NTQ1YjhmMDYwZWFmZGYyZDZiZTFiZjI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjE1LDYgKzIxNSw3IEBA
IHB1YmxpYzoKICAgICAvLyBEb3dubG9hZHMKICAgICBib29sIHNob3VsZEZpbmlzaEFmdGVyRG93
bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQ7IH0KICAg
ICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wpOworICAgIHZvaWQgc2V0
U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2wpOwogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRp
bmcoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEFsbG93RWRpdGluZzsgfQogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGVkMjgwMmZiMWU3NjZkYzVkZTY3
YzQ0ZDE1NzY2MTYzMmMzOTMxYTMuLjZiOGFjYmZkZmJjNGU2MWE0NjE3ODdlYzc5N2Q2NzEzOTZj
YzJjZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0x
NDYsNyArMTQ2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmF2aWdhdGlvbkRpZEJlY29tZURv
d25sb2FkU2hhcmVkKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGMKICAgICAgICAgVGVzdENvbnRy
b2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwsCiAgICAgICAgIFRl
c3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwK
ICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lLAotICAgICAgICBudWxscHRyLCAvLyBkaWRXcml0ZURhdGEKKyAgICAgICAgVGVzdENv
bnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6
ZG93bmxvYWREaWRGaW5pc2gsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZh
aWwKICAgICB9OwpAQCAtMTEwOCw2ICsxMTA4LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUK
ICAgICAgICAgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogICAgIH0K
IAorICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9IHsgfTsKKwogICAgIHJldHVybiBt
X2RvbmVSZXNldHRpbmc7CiB9CiAKQEAgLTIyMzcsNiArMjIzOSw4IEBAIFdLU3RyaW5nUmVmIFRl
c3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0Rv
d25sb2FkUmVmCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmluaXNoKFdLRG93
bmxvYWRSZWYpCiB7CisgICAgaWYgKG1fc2hvdWxkTG9nRG93bmxvYWRTaXplKQorICAgICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIkRvd25sb2FkIHNpemU6
ICIsIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbi52YWx1ZV9vcigwKSwgIi5cbiIpKTsKICAg
ICBpZiAobV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcykKICAgICAgICAgbV9jdXJyZW50SW52
b2NhdGlvbi0+b3V0cHV0VGV4dCgiRG93bmxvYWQgY29tcGxldGVkLlxuIik7CiAgICAgbV9jdXJy
ZW50SW52b2NhdGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7CkBAIC0yMjY5LDYgKzIyNzMsMTgg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoV0tEb3dubG9hZFJlZiwgV0sKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxl
cio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKG51bGxwdHIsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKIH0KIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEobG9uZyBsb25nIHRvdGFsQnl0
ZXNXcml0dGVuKQoreworICAgIGlmICghbV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcykKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9IHRvdGFsQnl0
ZXNXcml0dGVuOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0
YShXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBsb25nIGxvbmcgYnl0ZXNXcml0dGVuLCBsb25nIGxv
bmcgdG90YWxCeXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9s
bGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kb3dubG9hZERpZFdyaXRlRGF0
YSh0b3RhbEJ5dGVzV3JpdHRlbik7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OndlYlByb2Nl
c3NEaWRUZXJtaW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewogICAg
IC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aGVuIGNyYXNo
IGxvZ3MgYXJlIGJlaW5nIHNhdmVkIG9uIFdpbmRvd3MsIHNvCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNWNkNDlmYWYzMGRlNzhjY2VhY2Q1YWQwM2M4NDg2ZGM1
ZmM5MWMxMC4uNDAzZWRjMjNlODUwYTE0ODRjNjEyZDU5ZDRkYmRiMDk5MWEyYzE3YiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTkwLDYgKzE5MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3MoYm9vbCBz
aG91bGRMb2cpIHsgbV9zaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzID0gc2hvdWxkTG9n
OyB9CiAgICAgdm9pZCBzZXRTaG91bGRMb2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZSA9IHNob3VsZExvZzsgfQogICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93
bmxvYWRDYWxsYmFja3MoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3dubG9hZENhbGxi
YWNrcyA9IHNob3VsZExvZzsgfQorICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJv
b2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRTaXplID0gc2hvdWxkTG9nOyB9CiAK
ICAgICBib29sIGlzQ3VycmVudEludm9jYXRpb24oVGVzdEludm9jYXRpb24qIGludm9jYXRpb24p
IGNvbnN0IHsgcmV0dXJuIGludm9jYXRpb24gPT0gbV9jdXJyZW50SW52b2NhdGlvbi5nZXQoKTsg
fQogCkBAIC00NzMsNyArNDc0LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZG93bmxv
YWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBXS1VSTFJlc3Bv
bnNlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBib29sIGRvd25sb2Fk
RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXF1ZXN0
UmVmKTsKICAgICBzdGF0aWMgdm9pZCBkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXS0Rvd25sb2FkUmVmLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKLSAgICAKKworICAgIHZvaWQgZG93bmxvYWREaWRXcml0ZURh
dGEobG9uZyBsb25nIHRvdGFsQnl0ZXNXcml0dGVuKTsKKyAgICBzdGF0aWMgdm9pZCBkb3dubG9h
ZERpZFdyaXRlRGF0YShXS0Rvd25sb2FkUmVmLCBsb25nIGxvbmcgYnl0ZXNXcml0dGVuLCBsb25n
IGxvbmcgdG90YWxCeXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dy
aXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwogICAgIHN0YXRpYyB2b2lkIHdlYlByb2Nl
c3NEaWRUZXJtaW5hdGUoV0tQYWdlUmVmLCAgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24sIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHZvaWQgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKQEAgLTY2Myw2ICs2NjcsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQgeyBmYWxz
ZSB9OwogCiAgICAgYm9vbCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCB7IHRy
dWUgfTsKKworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZyBsb25nPiBtX2Rvd25sb2FkVG90YWxCeXRl
c1dyaXR0ZW47CisgICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKaW5kZXggM2RmYWM1ZmMwMDllNDk2NTQ0NGU2YjQwOTFkYmVlYjJlMjIxZDJiYi4u
NzJmYTgyYmJjMDEwMjk2ZjA0ZDEzMGVjOWJjNmE0MzU3Y2JkMGU5MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTUzNyw2ICs1MzcsMTEgQEAgdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U2hvdWxkTG9nRG93bmxv
YWRTaXplIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3Vs
ZExvZ0Rvd25sb2FkU2l6ZShib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIpKSB7CiAgICAgICAgIFdLU3RyaW5n
UmVmIHVzZXJuYW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSh0b1dURlN0cmlu
Zyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5N2UwYzRkOGE2ODIxNmQ1MGEwZDlkZjc3OTVjZjhlZmJm
MDA4ZWYuLjIzYTUxY2Y4ZTFjZjkyMjU3NDMwODRlMTc5YjZlZmQyNmE2YmJmNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAyMS0xMi0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhy
b3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRv
d25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
ZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRw
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlw
dC5weToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zl
dGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9h
ZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9h
ZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIxLTEyLTA4ICBQYXRyaWNrIEdyaWZm
aXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENTUDogU2tpcCB3aGl0ZXNwYWNl
IGF0IGJlZ2lubmluZyBvZiBwb2xpY3kgaGVhZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxv
YWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwppbmRleCBkNWM2NjMwYmI1
MTFmNWY3YWIyOGVkZDIxYjQwYWE4ZmMzMzQ2ZWY3Li42MDAyOTIzOWQzN2UwYzJlZmVhMjFjMjU1
ZGVmMmZhZmY3YmZiODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKQEAgLTEsMyArMSwyMSBAQAogc2VsZi5hZGRF
dmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0
LnVybC5pbmNsdWRlcygiZG93bmxvYWQtYm9keSIpKSB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNl
ID0gbmV3IFJlc3BvbnNlKCJhIGRvd25sb2FkIGJvZHkiLCB7ImhlYWRlcnMiIDogW1siQ29udGVu
dC1UeXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25k
V2l0aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50LnJl
cXVlc3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1zdHJlYW0iKSkgeworICAgICAgICBjb25zdCBz
dHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IChjb250cm9s
bGVyKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2Rl
cigpOworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSgi
YSBmaXJzdCBjaHVuaywgIikpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBj
b250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoInRoZW4gYSBzZWNvbmQgY2h1bmsiKSk7
IH0sIDEwMCk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIu
Y2xvc2UoKTsgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNv
bnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSwgeyJoZWFkZXJzIiA6IFtbIkNvbnRl
bnQtVHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9u
ZFdpdGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGV2ZW50LnJlc3Bv
bmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QudXJsKSk7CiB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2Fk
LWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjJlYmMyYjg2ZTY2YmIzOWM5YmMwOWQzZGE5M2Y0MDMyNDMxYmNmNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAiZG93bmxvYWQtYm9keSIKK0Rvd25sb2FkIHNpemU6IDE1LgorRG93bmxvYWQgY29t
cGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkMmQ0ODBhOTFkYWFjMWM2ZDRkMGVlYzg5ZWNjMjg3
ZjRiYTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkTG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2Fk
RmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVN
SU1FVHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdh
aXQgaW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdv
cmtlci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9j
YXRpb24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtYm9keSI7Cit9Citk
b1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQt
c3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDlhMTllYmUzN2EzMTRiM2Y1ODYyNDhhNzY2N2ZhNTBjMGYzOWZkYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2Vz
dGVkIGZpbGVuYW1lICJkb3dubG9hZC1zdHJlYW0iCitEb3dubG9hZCBzaXplOiAzNC4KK0Rvd25s
b2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3du
bG9hZC1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3M2ZlNDY5NjQwNjQzMzAzYmUw
M2ZhNzQwZGM4YzFjYmE4MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRV
bmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3Qo
KQoreworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7Cisg
ICAgd2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2Fk
LXN0cmVhbSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGQwOGVmODQ2ZDMyZjZlYzkxZDk0MjczYzljMjRlMGYwZjJjYTYyMDIuLjllMzMz
ZDU2OTFlOTliYmU1ZGUzMzJiNWNhZmIxZTRmZGVjYTM3MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw1IEBACiBEb3dubG9hZCBzdGFydGVkLgogRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICJkb3dubG9hZC1iaW5hcnkucHkiCitEb3dubG9hZCBzaXplOiA5LgogRG93bmxv
YWQgY29tcGxldGVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0
cHMuaHRtbAppbmRleCA4YzlhZGEzZmM4MTJjMzYwOTdiM2QwMzk0MTY0MDkzNWNiMjJlNzQ2Li40
YTVhYTg3YjRlYzBkM2Q3M2M5NzE2MWUwNjJmYzdkYzY4YTE3YjI0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKQEAgLTcsNiArNyw3IEBACiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
d25sb2FkRmluaXNoZWQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxh
eWFibGVNSU1FVHlwZXModHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10
aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25s
b2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2ZjM0M2M1MWQ1OWExOTdiMDJjZjVkZjMxOTczNzEzYjYzZDdhYjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBV
Ukwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
c2NyaXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVl
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3Vs
ZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdv
cmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rv
d25sb2FkPXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2
YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0
aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmln
Z2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0
ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAo
KSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAg
IGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAg
ICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3Jr
ZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7
CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAi
JnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQg
aWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5k
IHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxv
YWQgc2luY2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8v
IERvd25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25z
dCBwcm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsK
K30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmMzQzYzUxZDU5YTE5N2IwMmNmNWRmMzE5
NzM3MTNiNjNkN2FiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXBy
ZWxvYWQtc2NyaXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxl
dGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtZG93bmxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmZGZlYzQyYmMzMjEyMDcwMzJj
OTFmODQ0ODdiMjA0YmU1MTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAg
dGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25s
b2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsK
K3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2Fk
PXllcyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7CisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBvcnQyLm9u
bWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJh
Y3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAg
fSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3Jr
ZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgp
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRj
aCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lz
dHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIs
IHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgewor
ICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24g
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3Bl
IDogdXJsIH0pOworICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9y
dDEgfSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmco
KTsKKworICAgIGZldGNoKHVybCArICImdmFsdWU9dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BP
U1QnIH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNv
IHByZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQs
IHRocm91Z2ggdGhlIHNlcnZpY2Ugd29ya2VyLgorICAgIC8vIERvd25sb2FkIHNpemUgc2hvdWxk
IGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBwcm9taXNlID0gd2l0aElmcmFt
ZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30KK2RvVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC13b3JrZXIuanMKaW5kZXggZDA0YTQ5YTc4Y2Q4OTI5YTRmZDBkYjRhYjBjZWI4MDFh
MDE5NTBlOC4uNjg1MGUwMWRhOWYxYjY2ZmNjZGYzYThmMTc4OTYxMTc0M2I4MWJiZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMjMs
NSArMjMsNyBAQCBvbmFjdGl2YXRlID0gKGV2ZW50KSA9PiB7CiB9CiAKIHNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwu
aW5jbHVkZXMoIm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nIikpCisgICAgICAgIHJldHVybjsKICAg
ICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7CiB9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5CmluZGV4IDIwNjc4MzZmNTQxNzAzZGU4NGYwOGI4ZWIzZTZjYzhjMzM4MTM5ZmUuLjEy
MDYyYjhjNWUxMzRmOWM1MDdkMjA5YTQ0NDkzYWIyNzgyMTg1MjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5w
eQpAQCAtMzEsNSArMzEsMTAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGlm
IG5vdCB2YWx1ZToKICAgICAgICAgdmFsdWUgPSBiIm5vdGhpbmciCiAgICAgcmVzcG9uc2UuaGVh
ZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisKKyAgICBpZiBiImRvd25s
b2FkIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvdmNhcmQiKQorICAgICAgICByZXR1cm4gdmFsdWUuZGVjb2RlKCkK
KwogICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwi
KQogICAgIHJldHVybiAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnJXMnOzwv
c2NyaXB0PjwvYm9keT48L2h0bWw+IiAlIHZhbHVlLmRlY29kZSgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJl
Y3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWEx
YmVjZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI3OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3Jp
cHQucHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446977</attachid>
            <date>2021-12-13 01:46:32 -0800</date>
            <delta_ts>2021-12-13 03:27:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-202142-20211213104629.patch</filename>
            <type>text/plain</type>
            <size>99116</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMTY5NDc3NDRiZDll
MzUzZmU1YWM0NTQ4MTZmNGRjN2Y3MmE2Ni4uNzcyODM5ZjYyZWJiOWQwNGRjMDcyZjQzMTgyNzU1
NjkxZDBiYTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgQVBJIHRvIGFzayB0
aGUgZmV0Y2ggdGFzayB0byBiZWNvbWUgYSBkb3dubG9hZC4KKworICAgICAgICBUZXN0czogaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRw
cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQt
dGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy5odG1sCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyRmV0Y2guaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgorCiAyMDIxLTEyLTEzICBKZWFuLVl2ZXMgQXZlbmFy
ZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzdGluZ3Vpc2ggY29udGlndW91cyBTaGFy
ZWRCdWZmZXIgZnJvbSBub24tY29udGlndW91cyBvbmUgYW5kIGd1YXJhbnRlZSBpbW11dGFiaWxp
dHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzkzZWQzYTkzYzAyYzBlN2YwM2I2MjFjZmRhNmI0ZmRjZmUyODg0ZC4u
MGEzNjQ2ZjlhMGRhMTc3ZmMzMTFkNjkzYWQ1NjYzODhlODczNDlmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAyMS0xMi0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgQWRkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgY2xhc3MgYXMgYSBOZXR3
b3JrRGF0YVRhc2sgd2hvc2UgcHVycG9zZSBpcyB0byBkb3dubG9hZCB0aGUgY29udGVudCBvZiBh
IHJlc3BvbnNlIGdpdmVuIGZyb20gc2VydmljZSB3b3JrZXIuCisgICAgICAgIEFkZCBhIHdheSB0
byBjb252ZXJ0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgaW50byBkb3dubG9hZHM6CisgICAgICAg
IC0gSWYgYSBwcmVsb2FkIGlzIG9uZ29pbmcgYW5kIGNhbiBiZSB1c2VkIGZvciBuYXZpZ2F0aW9u
LCB1c2UgdGhpcyBwcmVsb2FkIGFzIHRoZSBkb3dubG9hZCBOZXR3b3JrTG9hZC4KKyAgICAgICAg
LSBJZiBhIHByZWxvYWQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBhIFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2sgYW5kIGEgY29ycmVzcG9uZGluZyBOZXR3b3JrTG9hZCB0byBzdGFydCBkb3dubG9h
ZGluZyB0aGUgc2VydmljZSB3b3JrZXIgcmVzcG9uc2UgZGF0YS4KKyAgICAgICAgV2hlbiBjcmVh
dGluZyBhIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2ssIHRoZSBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50IHdpbGwgYmUgbm90aWZpZWQgdG8gc3RhcnQgc2VuZGluZyByZXNwb25zZSBk
YXRhIHVzaW5nIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKKyAgICAgICAgaW5zdGVhZCBvZiBT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIG1lc3NhZ2VzLiBUaGlzIGFsbG93cyBjYW5jZWxsaW5nIHRo
ZSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHdpdGhvdXQgYW55IGlzc3VlLgorCisgICAgICAgIE5v
dGUgdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgbGlmZXRpbWUgaXMgbm90IGF1Z21lbnRlZDogaWYg
dGhlIHNlcnZpY2Ugd29ya2VyIGV4aXRzIGR1ZSB0byBhbGwgaXRzIGNsaWVudHMgYmVpbmcgY2xv
c2VkLCB0aGUgZG93bmxvYWQgd2lsbCBmYWlsLgorCisgICAgICAgIEluY3JlYXNlIHVuaWZpZWQg
YnVpbGQgZmlsZXMgdG8gMTEyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHA6IEFkZGVkLgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5o
OiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLXVuaWZp
ZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRo
SWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZl
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RXaXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0cmVhbTo6ZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
Y2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpkb3dubG9hZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3dubG9hZFByb3h5KToKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaDoKKwogMjAyMS0xMi0xMSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI4Njg0MSk6IFsgaU9TIF0gTWFueSB3ZWJydGMgdGVzdHMgZmxha3kgZmFpbGluZyBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJGZXRjaC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckZldGNoLmgKaW5kZXggZWIyNjZiNmMwN2U2NzNkOTE2NmNhY2U2YjMzOTE5
ZDgwZWJiZjMxYy4uZGU5ZTIzMGY5YmRiOTlhNWU4Mzg3ZGZkOTYwM2FlYzVjYWEzZjAwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckZldGNoLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWROb3RIYW5kbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKSA9IDA7CiB9OwogCiB2b2lk
IGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJ
ZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBiM2NmMmM3M2IyMjM5
MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRiLi5kYjZjOTNiOGJlOTFiOWI5MjI3MTA5NDc5OWQw
ZGRjM2Y2NDgyZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAg
LTI0Miw2ICsyNDIsMjAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNhbmNlbEZl
dGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGkKICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eTo6Y29udmVydEZldGNoVG9Eb3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQor
eworICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQgJWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKKworICAgIGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKHN0ZDo6
bWFrZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpKTsKKyAgICBp
ZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZShbY2xpZW50ID0gUmVmIHsgKmNsaWVudCB9XSAoYXV0byYp
IHsKKyAgICAgICAgY2xpZW50LT5jb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCk7CisgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlclRocmVh
ZFByb3h5Ojpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBjbGllbnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLmdldChz
dGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCmluZGV4IDBhMzM3OTI0NDgwZWJmODI2NzUz
ZWY1NDFhM2YxY2Q0YzY5MjVmNGEuLjAxYjNhZDA0OTE1ZDRiZTI3YjAxYmNmZmRjNmIwY2ZiMjA4
ZmMwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCkBAIC03Nyw2ICs3Nyw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2Vy
RmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9w
dGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZl
cnRGZXRjaFRvRG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGIxZGJi
YjU1NDlmN2EwNTFiY2NiMGRiZTJmMjM5OWFhYmYxYWI5MjEuLjI1OWU0NzJiNTdkMGM2NGZmNzQz
NzlmMmM5MjljODcyY2ZlZmUwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTk3LDYgKzE5Nyw3
IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0K
IAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzawogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uCiAgICAgTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCA1YmE2NGI0NGJlMWU1Nzc1MDg4ZmM2ZTkwNTU5OWM3Y2Q1NzgzY2QzLi40MDRh
NzIyYzc2OTAwMDBhMGYwM2I5YTgwMGRmYzViN2ExZTMwYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC04Nyw2ICs4Nyw3IEBAICQoUFJP
SkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3Ry
ZWFtLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApp
bmRleCAyMmRhN2I3NzcwODUwNzUwNmY1MThmZjQyOGYwNzY1NjFiZGVmYWJhLi4zNjdlMGFjMTBm
OGM1MGMwZjNmNGMxODUxMzE4ZWRiNTY1MWFhZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM5Niw2ICszOTYsOSBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZWNJdGVtU2hpbVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VydmljZVdvcmtlckRv
d25sb2FkVGFza01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRj
aFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tN
ZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4NGZhY2Q1
ZDc2ZmMyNGEyN2IwN2FmNDcwY2MzZjlhM2NkMWMwNjAuLmIzYjcxOTc3YjRhMGFlNDFhMmI2YzBk
NzVkMzczN2YwOTM5YTczMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2
ICsxMzIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyIFwKIAlOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbCBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24gXAorCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzayBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrIFwKIAlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dFN0cmVhbSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDI5MWNjOTg5MmU4MTAy
N2Q5Y2FlZDFkOWRiNzA2MWQ3M2U2NzQxNzAuLmI4ODBiNzZiNzMwZWU0NTljM2YxOWRjMjVmZWZh
MjFhMTAzZTY2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02OTUsOCArNjk1
LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKHN0ZDo6b3B0aW8KIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICAvLyBJbiBjYXNlIGEgcmVzcG9uc2UgaXMgc2VydmVkIGZy
b20gc2VydmljZSB3b3JrZXIsIHdlIGRvIG5vdCBoYXZlIHlldCB0aGUgYWJpbGl0eSB0byBjb252
ZXJ0IHRoZSBsb2FkLgotICAgIGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIgfHwgcmVz
cG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2Vy
KSB7CisgICAgaWYgKCFtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllcikgewogICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKG1fc2Vzc2lvbklE
LCBkb3dubG9hZElELCByZXF1ZXN0LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKaW5kZXggYmFjMDIyYWI0NTQzMGY2NTFiMTg5YWMwMTIwN2EwNjA2MDhjMTY3
MS4uNmRmMTQxMDczNmFiYTJmMmQ5YTE5NjE1NmMwYjFiYWZhOGU3MDQ0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDEzIEBA
IE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBCbG9i
UmVnaXN0cnlJbXBsKiBibG9iUmVnaXN0CiAgICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFz
azo6Y3JlYXRlKG5ldHdvcmtTZXNzaW9uLCAqdGhpcywgbV9wYXJhbWV0ZXJzKTsKIH0KIAorTmV0
d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtT
ZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29uc3QgRnVuY3Rpb248UmVmUHRyPE5ldHdvcmtEYXRh
VGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+JiBjcmVhdGVUYXNrKQorICAgIDogbV9jbGll
bnQoY2xpZW50KQorICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrU2Vzc2lvbi5uZXR3b3Jr
UHJvY2VzcygpKQorICAgICwgbV90YXNrKGNyZWF0ZVRhc2soKnRoaXMpKQoreworfQorCiB2b2lk
IE5ldHdvcmtMb2FkOjpzdGFydCgpCiB7CiAgICAgaWYgKCFtX3Rhc2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKaW5kZXggYzM3NzNjOTg3ODU1M2NlNTM0ZDA1
NGFiZmZkZGViYjI5ZWUwODRkMi4uYjkyZjljNjFlMTM1OTBjNDFjYmMxZDhiMzgyOGQzYWNjYjc1
MWIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaApAQCAt
NDYsNiArNDYsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUlt
cGwqLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgTmV0d29ya1Nlc3Npb24mKTsKKyAgICBOZXR3
b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYsIE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgRnVuY3Rp
b248UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4oTmV0d29ya0RhdGFUYXNrQ2xpZW50Jik+Jik7CiAg
ICAgfk5ldHdvcmtMb2FkKCk7CiAKICAgICB2b2lkIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
NTc3ZDY1NmU2N2ZjY2E0NjQwNTBiZmQzNGRhZGMyYTM2MjVlMjMwMS4uNmY4MDM4OGM5MzNkNmVk
Mjk5ZDM2MzVjM2ZhZTA2MjkxM2M2OWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDg0LDYgKzQ4NCwx
MSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxv
YWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdQogewogICAgIExPQURFUl9SRUxFQVNFX0xPRygi
Y29udmVydFRvRG93bmxvYWQ6IChkb3dubG9hZElEPSUiIFBSSXU2NCAiLCBoYXNOZXR3b3JrTG9h
ZD0lZCwgaGFzUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcj0lZCkiLCBkb3dubG9hZElELnRvVUlu
dDY0KCksICEhbV9uZXR3b3JrTG9hZCwgISFtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwog
CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIGlmIChtX3NlcnZpY2VXb3JrZXJGZXRj
aFRhc2sgJiYgbV9zZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLT5jb252ZXJ0VG9Eb3dubG9hZChtX2Nv
bm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCksIGRvd25sb2FkSUQs
IHJlcXVlc3QsIHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBU
aGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4K
ICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklEKCksIGRv
d25sb2FkSUQsIHJlcXVlc3QsIG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNWQ0ZTM3Zjk0NTRiZWUzMmYwNGQ4Y2M4YzQ3MWQ1ZDNmN2VkODJiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwCkBAIC0wLDAgKzEsMjY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkRvd25sb2Fk
TWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
cy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIFdvcmtRdWV1ZSYgc2hh
cmVkU2VydmljZVdvcmtlckRvd25sb2FkVGFza1F1ZXVlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJTaGFyZWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzayBRdWV1ZSIpKTsKKyAgICByZXR1cm4gcXVldWUuZ2V0
KCk7Cit9CisKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OlNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBEb3dubG9hZElEIGRvd25sb2FkSUQpCisgICAgOiBOZXR3b3JrRGF0YVRh
c2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9O
b3RVc2UsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24oc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24pCisgICAgLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICAsIG1fZmV0Y2hJZGVudGlmaWVyKGZl
dGNoSWRlbnRpZmllcikKKyAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQorICAgICwgbV9u
ZXR3b3JrUHJvY2VzcyhzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpKQor
eworICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMpOwor
fQorCitTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjp+U2VydmljZVdvcmtlckRvd25sb2FkVGFz
aygpCit7CisgICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjbG9zZSgpCit7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CisKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikgeworICAg
ICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT51bnJlZ2lzdGVyRG93bmxvYWQoKnRoaXMp
OworICAgICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckRvd25sb2Fk
VGFzazo6c2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlJiYgbWVzc2FnZSkKK3sKKyAgICByZXR1
cm4gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA/IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24t
PmlwY0Nvbm5lY3Rpb24oKS5zZW5kKHN0ZDo6Zm9yd2FyZDxNZXNzYWdlPihtZXNzYWdlKSwgMCkg
OiBmYWxzZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaXNwYXRjaFRv
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyAgICBzaGFyZWRTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrUXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICAgICAgZnVuY3Rp
b24oKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjYW5j
ZWwoKQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOworCisgICAgc2hhcmVkU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFza1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XSB7CisgICAgICAgIGlmIChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lz
dGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CisgICAgICAgICAgICBGaWxlU3lzdGVt
OjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgICAgICAgICAgbV9kb3dubG9hZEZpbGUg
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAgICAgICB9CisgICAg
fSk7CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIG1fc2FuZGJveEV4
dGVuc2lvbi0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7
CisgICAgfQorCisgICAgc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CisK
KyAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICBjbG9zZSgpOworfQorCit2b2lk
IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OnJlc3VtZSgpCit7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCit7CisgICAg
QVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBjYW5jZWwoKTsKK30KKwordm9pZCBTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihjb25zdCBX
VEY6OlN0cmluZyYgZmlsZW5hbWUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CisKKyAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKCkpIHsKKyAgICAgICAgc2hh
cmVkU2VydmljZVdvcmtlckRvd25sb2FkVGFza1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSgpIG11dGFibGUgeworICAgICAgICAgICAgZGlkRmFp
bERvd25sb2FkKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
TmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihmaWxlbmFtZSwgeyB9
LCBhbGxvd092ZXJ3cml0ZSk7CisKKyAgICBBU1NFUlQoIW1fc2FuZGJveEV4dGVuc2lvbik7Cisg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUo
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpOworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pCisg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+Y29uc3VtZSgpOworCisgICAgc2hhcmVkU2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFza1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBhbGxvd092ZXJ3cml0ZSAsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNv
bGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKGZpbGVuYW1lKSkgeworICAgICAgICAgICAgaWYgKCFGaWxl
U3lzdGVtOjpkZWxldGVGaWxlKGZpbGVuYW1lKSkgeworICAgICAgICAgICAgICAgIGRpZEZhaWxE
b3dubG9hZCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9w
ZW5kaW5nRG93bmxvYWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7
CisgICAgICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlKQorICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgfSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c3RhcnQoKQoreworICAgIEFTU0VS
VChtX3N0YXRlICE9IFN0YXRlOjpDb21wbGV0ZWQpOworCisgICAgaWYgKCFzZW5kVG9TZXJ2aWNl
V29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udmVydEZl
dGNoVG9Eb3dubG9hZCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pKSB7CisgICAgICAgIHNoYXJlZFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2tRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRpZEZhaWxEb3du
bG9hZCgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3Rh
dGUgPSBTdGF0ZTo6UnVubmluZzsKKworICAgIGF1dG8mIG1hbmFnZXIgPSBtX25ldHdvcmtQcm9j
ZXNzLT5kb3dubG9hZE1hbmFnZXIoKTsKKyAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxE
b3dubG9hZD4obWFuYWdlciwgbV9kb3dubG9hZElELCAqdGhpcywgKm5ldHdvcmtTZXNzaW9uKCkp
OworICAgIGF1dG8qIGRvd25sb2FkUHRyID0gZG93bmxvYWQuZ2V0KCk7CisgICAgbWFuYWdlci5k
YXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhtX2Rvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQp
KTsKKyAgICBkb3dubG9hZFB0ci0+ZGlkQ3JlYXRlRGVzdGluYXRpb24obV9wZW5kaW5nRG93bmxv
YWRMb2NhdGlvbik7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIGlmICht
X2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6
d3JpdGVUb0ZpbGUobV9kb3dubG9hZEZpbGUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisK
KyAgICBpZiAoYnl0ZXNXcml0dGVuICE9IGRhdGEuc2l6ZSgpKSB7CisgICAgICAgIGRpZEZhaWxE
b3dubG9hZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBieXRlc1dyaXR0ZW5dIHsK
KyAgICAgICAgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAg
IGlmIChhdXRvKiBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigp
LmRvd25sb2FkKG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93bmxvYWQtPmRp
ZFJlY2VpdmVEYXRhKGJ5dGVzV3JpdHRlbiwgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiwgMCk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIEFT
U0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHdyaXRpbmcg
Zm9ybURhdGEgaW4gZG93bmxvYWRzLgorICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3Jr
ZXIsICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEgbm90IGlt
cGxlbWVudGVkIik7CisgICAgZGlkRmFpbERvd25sb2FkKCk7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxv
b3AoKSk7CisKKyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAg
IG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsK
KworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0geworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgY2xv
c2UoKTsKKworICAgICAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb24tPnJldm9rZSgpOworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvIGRvd25sb2FkID0g
bV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93
bmxvYWRJRCkpCisgICAgICAgICAgICBkb3dubG9hZC0+ZGlkRmluaXNoKCk7CisKKyAgICAgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9y
KHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlk
RmFpbChSZXNvdXJjZUVycm9yJiYgZXJyb3IpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29w
KCkpOworCisgICAgZGlkRmFpbERvd25sb2FkKFdURk1vdmUoZXJyb3IpKTsKK30KKwordm9pZCBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRGYWlsRG93bmxvYWQoc3RkOjpvcHRpb25hbDxS
ZXNvdXJjZUVycm9yPiYmIGVycm9yKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsK
KworICAgIGlmIChtX2Rvd25sb2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmls
ZSk7CisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICB9CisKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGVycm9yID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUo
ZXJyb3IpKV0geworICAgICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q29tcGxldGVkKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOwor
ICAgICAgICBjbG9zZSgpOworCisgICAgICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKKyAg
ICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbi0+cmV2b2tlKCk7CisgICAgICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb24gPSBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgYXV0byByZXNv
dXJjZUVycm9yID0gZXJyb3IudmFsdWVfb3IoY2FuY2VsbGVkRXJyb3IoZmlyc3RSZXF1ZXN0KCkp
KTsKKyAgICAgICAgaWYgKGF1dG8gZG93bmxvYWQgPSBtX25ldHdvcmtQcm9jZXNzLT5kb3dubG9h
ZE1hbmFnZXIoKS5kb3dubG9hZChtX3BlbmRpbmdEb3dubG9hZElEKSkKKyAgICAgICAgICAgIGRv
d25sb2FkLT5kaWRGYWlsKHJlc291cmNlRXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSgpKTsKKwor
ICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVX
aXRoRXJyb3IocmVzb3VyY2VFcnJvcik7CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI1OWVhZTUyNjY1MzA2MjEy
YTI4ZTkzMjNhMmI4YjRmZmUwYzc4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgK
QEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVT
eXN0ZW0uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xhc3MgTmV0d29y
a1Byb2Nlc3M7CitjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOworCitjbGFzcyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIDogcHVi
bGljIE5ldHdvcmtEYXRhVGFzaywgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgRG93bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJlZigqIG5ldyBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVjdGlvbiwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElk
ZW50aWZpZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrKCk7CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKyAgICB2b2lkIGNvbnRl
eHRDbG9zZWQoKSB7IGNhbmNlbCgpOyB9CisgICAgdm9pZCBzdGFydCgpOworICAgIHZvaWQgc3Rv
cCgpIHsgY2FuY2VsKCk7IH0KKworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6cmVmOworICAg
IHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVyZWY7CisgICAgdXNpbmcgTmV0d29ya0RhdGFUYXNr
Ojp3ZWFrUHRyRmFjdG9yeTsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6OldlYWtWYWx1ZVR5
cGU7CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vz
c2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIERvd25sb2FkSUQpOworCisgICAgLy8gSVBDIE1lc3Nh
Z2UKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNv
bnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaCgpOworICAg
IHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworCisgICAgLy8gTmV0d29y
a0RhdGFUYXNrCisgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIGZp
bmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIGZpbmFsOworICAgIFN0YXRlIHN0
YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQgc2V0UGVuZGlu
Z0Rvd25sb2FkTG9jYXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYsIGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBmaW5hbDsKKworICAgIC8vIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRv
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIHJl
Zk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmTWVzc2Fn
ZVJlY2VpdmVyKCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBN
ZXNzYWdlPiBib29sIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZSYmKTsKKyAgICB2b2lkIGRp
ZEZhaWxEb3dubG9hZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYgPSB7
IH0pOworICAgIHZvaWQgY2xvc2UoKTsKKworICAgIFdlYWtQdHI8V2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uPiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7CisgICAgV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyOworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2ZldGNoSWRlbnRpZmllcjsK
KyAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1f
bmV0d29ya1Byb2Nlc3M7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4
dGVuc2lvbjsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9kb3dubG9hZEZp
bGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CisgICAgaW50NjRf
dCBtX2Rvd25sb2FkQnl0ZXNXcml0dGVuIHsgMCB9OworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0
ZTo6U3VzcGVuZGVkIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkM2JmYjdjYzMxMDk3OTljYzgwMDFiYmE3MWQ4OWMwZjZm
MmQ5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2sgTm90UmVmQ291bnRlZCB7CisgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yKQorICAgIERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVGb3JtRGF0
YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCisgICAgRGlkRmluaXNoKCkKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcAppbmRleCA2YWIyMzY0NTEzMjQ0OGEzNTlkMjk4ODk3ZjQ1MzMwY2JkMjJk
M2I1Li40ZTc5MTliM2RkYzAyYWUxNGQwZWQ5Njg0YjhjNjhiYjZmMjhhNDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbi5oIgpAQCAtMzAyLDcgKzMwMywxMCBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OmNhbm5vdEhhbmRsZSgpCiAKIHZvaWQgU2VydmljZVdvcmtlckZldGNo
VGFzazo6Y2FuY2VsRnJvbUNsaWVudCgpCiB7Ci0gICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2Fu
Y2VsRnJvbUNsaWVudDoiKTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5jZWxGcm9tQ2xp
ZW50OiBpc0RvbmU9JWQiLCBtX2lzRG9uZSk7CisgICAgaWYgKG1faXNEb25lKQorICAgICAgICBy
ZXR1cm47CisKICAgICBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9KTsKIH0K
IApAQCAtNDE4LDYgKzQyMiwzNiBAQCBOZXR3b3JrU2Vzc2lvbiogU2VydmljZVdvcmtlckZldGNo
VGFzazo6c2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc3dTZXJ2ZXJDb25uZWN0aW9uID8gbV9zd1Nl
cnZlckNvbm5lY3Rpb24tPnNlc3Npb24oKSA6IG51bGxwdHI7CiB9CiAKK2Jvb2wgU2VydmljZVdv
cmtlckZldGNoVGFzazo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBtYW5hZ2Vy
LCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKG1fcHJlbG9hZGVy
ICAmJiAhbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gbV9wcmVsb2FkZXItPmNvbnZlcnRUb0Rvd25sb2FkKG1hbmFn
ZXIsIGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKKworICAgIGF1dG8qIHNlc3Npb24g
PSB0aGlzLT5zZXNzaW9uKCk7CisgICAgaWYgKCFzZXNzaW9uIHx8ICFtX3NlcnZpY2VXb3JrZXJD
b25uZWN0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lzRG9uZSA9IHRydWU7
CisKKyAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byBrZWVwIHRoZSBzZXJ2aWNlIHdvcmtl
ciBhbGl2ZSB1bnRpbCB0aGUgZG93bmxvYWQgZW5kcy4KKyAgICBSZWZQdHI8U2VydmljZVdvcmtl
ckRvd25sb2FkVGFzaz4gc2VydmljZVdvcmtlckRvd25sb2FkVGFzazsKKyAgICBhdXRvIHNlcnZp
Y2VXb3JrZXJEb3dubG9hZExvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkPihtX2xvYWRlciwg
KnNlc3Npb24sIFsmXShhdXRvJiBjbGllbnQpIHsKKyAgICAgICAgc2VydmljZVdvcmtlckRvd25s
b2FkVGFzayA9ICBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpjcmVhdGUoKnNlc3Npb24sIGNs
aWVudCwgKm1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24sIG1fc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCByZXF1
ZXN0LCBkb3dubG9hZElEKTsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2suY29weVJlZigpOworICAgIH0pOworCisgICAgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciBj
b21wbGV0aW9uSGFuZGxlciA9IFtzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrID0gV1RGTW92ZShz
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKV0oYXV0byBwb2xpY3kpIHsKKyAgICAgICAgaWYgKHBv
bGljeSAhPSBQb2xpY3lBY3Rpb246OkRvd25sb2FkKSB7CisgICAgICAgICAgICBzZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLT5zdG9wKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2FkVGFzay0+c3RhcnQoKTsKKyAgICB9OworCisg
ICAgbWFuYWdlci5jb252ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIFdURk1v
dmUoc2VydmljZVdvcmtlckRvd25sb2FkTG9hZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBTV0ZFVENIX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAppbmRleCBhYmE5MDU3MmYwNTFlZWQ5MGYyZjdhOWQ1
MzUwNWUxYTRmNGU5OGMyLi5jMzQ1ODAyNjdmYjMyNjllNmRjYmRjZWZjMzRkMDY4MmM2YTA4ODZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CkBAIC01NCw2ICs1
NSw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBEb3dubG9hZE1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyOwpAQCAtODUsNiArODcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5ub3RIYW5kbGUoKTsK
ICAgICB2b2lkIGNvbnRleHRDbG9zZWQoKTsKIAorICAgIGJvb2wgY29udmVydFRvRG93bmxvYWQo
RG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCiBwcml2YXRlOgogICAg
IGVudW0gY2xhc3MgU2hvdWxkU2V0U291cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lk
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
LmNwcAppbmRleCAzYTU1MTc0OTAxZDQ3ODk5YzFjMDJkMGQyN2E4ODhhN2NiZGE1ZDYyLi5iMzc3
MTc5Njk0Y2ZiNDZiNWIzYTE3N2Y0NzdjOTEwMzg2ZDZiZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRvd25sb2Fk
TWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUu
aCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgpAQCAtMjQyLDYgKzI0MywxNSBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjp3YWl0Rm9yQm9keShCb2R5Q2FsbGJhY2sm
JiBjYWxsYmFjaykKICAgICBtX2JvZHlDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogfQog
Citib29sIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9h
ZChEb3dubG9hZE1hbmFnZXImIG1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIW1fbmV0d29ya0xvYWQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIG1hbmFnZXIuY29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9h
ZChkb3dubG9hZElELCBzdGQ6OmV4Y2hhbmdlKG1fbmV0d29ya0xvYWQsIG51bGxwdHIpLCBXVEZN
b3ZlKG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciksIHsgfSwgcmVxdWVzdCwgcmVzcG9uc2Up
OworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKaW5kZXggNWM0YzhlNzFkNGRkMzgzNWMxZDU3MjJi
ODFjYzdiNTk4NDBlOGFhOC4uMzI2NTcwZTY5Y2E0MDYyYzc4NWE0ZWNmZjk2MWEwMWUwYTkwYTFj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgiCkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIERvd25sb2FkTWFuYWdlcjsKIGNsYXNzIE5ldHdv
cmtMb2FkOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiAKQEAgLTYwLDYgKzYyLDggQEAgcHVibGlj
OgogICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRy
aWNzKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KICAgICBib29sIGlz
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGUuZW5hYmxlZDsgfQogCisgICAgYm9vbCBjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZE1h
bmFnZXImLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisKIHByaXZhdGU6CiAgICAgLy8gTmV0d29y
a0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0
ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBmaW5hbCB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
aW5kZXggOGIyMTM4NTJkMGYxMTdkZWY4MTlkNDUyZGI3YjhmY2Y0OWUzNzU2Yi4uZjBhODk2NzVj
YzE0NDM3MDhhMGI2OGFjOTMxY2U3N2ZkMjVjNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNTks
NiArNjAsMTAgQEAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp+V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uKCkKICAgICBmb3IgKGF1dG8mIGZldGNoIDogZmV0Y2hlcy52YWx1
ZXMoKSkKICAgICAgICAgZmV0Y2gtPmNvbnRleHRDbG9zZWQoKTsKIAorICAgIGF1dG8gZG93bmxv
YWRzID0gV1RGTW92ZShtX29uZ29pbmdEb3dubG9hZHMpOworICAgIGZvciAoYXV0byYgZG93bmxv
YWQgOiBkb3dubG9hZHMudmFsdWVzKCkpCisgICAgICAgIGRvd25sb2FkLT5jb250ZXh0Q2xvc2Vk
KCk7CisKICAgICBpZiAobV9zZXJ2ZXIgJiYgbV9zZXJ2ZXItPmNvbnRleHRDb25uZWN0aW9uRm9y
UmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4oKSkgPT0gdGhpcykKICAgICAgICAg
bV9zZXJ2ZXItPnJlbW92ZUNvbnRleHRDb25uZWN0aW9uKCp0aGlzKTsKIH0KQEAgLTE5Nyw2ICsy
MDIsMTkgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVucmVnaXN0ZXJG
ZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXMKICAgICBtX29uZ29pbmdGZXRjaGVzLnJl
bW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFz
ayYgdGFzaykKK3sKKyAgICBBU1NFUlQoIW1fb25nb2luZ0Rvd25sb2Fkcy5jb250YWlucyh0YXNr
LmZldGNoSWRlbnRpZmllcigpKSk7CisgICAgbV9vbmdvaW5nRG93bmxvYWRzLmFkZCh0YXNrLmZl
dGNoSWRlbnRpZmllcigpLCB0YXNrKTsKKyAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLmFk
ZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFz
azo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAmdGFzaywgdGFzay5mZXRjaElkZW50aWZpZXIoKS50
b1VJbnQ2NCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnVu
cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQoreworICAg
IG1fb25nb2luZ0Rvd25sb2Fkcy5yZW1vdmUodGFzay5mZXRjaElkZW50aWZpZXIoKSk7CisgICAg
bV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGFzay5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKK30KKwogV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp3ZWJQcm9jZXNzSWRl
bnRpZmllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29ubmVjdGlvbi53ZWJQcm9jZXNzSWRl
bnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCmluZGV4IDRhMGIxNTM3MWZmOTY3MTU5ZGZlNjYxMjU4ZTQ1NTc2ZTc1MjExMGQuLjMz
NjU4YzU0YzE0ZmE0YTQ0NGI3NDM2ZGQ5MGIwODU5YTI0MmJiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oPgpAQCAt
NzQsOCArNzUsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3RlckZldGNoKFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2smKTsKICAgICB2b2lkIHVucmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrJik7CisgICAgdm9pZCByZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2smKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrJik7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllcigpIGNvbnN0OworICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcygp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CiAg
ICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCkBAIC0xMDMsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAg
ICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFdlYWtQ
dHI8V2ViQ29yZTo6U1dTZXJ2ZXI+IG1fc2VydmVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdG
ZXRjaGVzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+PiBtX29uZ29pbmdEb3dubG9hZHM7CiAgICAgYm9vbCBt
X2lzVGhyb3R0bGVhYmxlIHsgdHJ1ZSB9OwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93
ZWJQYWdlUHJveHlJRDsKICAgICBzaXplX3QgbV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50IHsg
MCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xv
Y2FsU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggNjY2ZTZkNWUyYmUxMjhjYTk3OGI3ZTI1ZWM3
YWI1MDk2M2I4ZTFmZC4uYTg4ODQyZTI5NWYyZDkwYThmMGU4YmJhOGVkN2IzZWEyN2Q1OGE4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3Rv
cmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TG9jYWxTdG9yYWdlTWFuYWdlci5oCkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RydWN0IENsaWVudE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9n
ZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJh
dGUtdW5pZmllZC1zb3VyY2VzLnNoCmluZGV4IDRmMWFjODNjYjNhMjI2ZWNjZDA3ODM5ODM3OTIz
Y2JjNDRiYWI5MjMuLjJhM2Q2YjVlZWIyNDE0MDFjODBlYTNiZWQ4MjM4MmQwMzU2NTIzNjQgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMu
c2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5z
aApAQCAtMTQsNyArMTQsNyBAQCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhl
bgogICAgIGZpCiBmaQogCi1VbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExMgorVW5pZmllZFNv
dXJjZUNwcEZpbGVDb3VudD0xMTUKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBb
ICQjIC1lcSAwIF07IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDk0MmM3NjFkMzY3NWQ5Y2RhZGNmOWRhMWQ0NWViOTNiOTgyMTBiMjcuLjk0Y2ZkOTAw
YzMwNGU5NTY3NTFmYzFiMDI4ZmVhYzNlNjQxOTIzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMTEyNiw3ICsxMTI2LDcgQEAgZGVmIGdlbmVyYXRlX21l
c3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
aWYgKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGlu
ZygpKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuO1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNI
RURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1
NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICBlbGlm
IGFzeW5jX21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hf
TUVTU0FHRV9BVFRSSUJVVEUpIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfQVNZTkNf
RElTUEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUpOgogICAgICAgICByZWNlaXZlX3ZhcmlhbnQgPSBy
ZWNlaXZlci5uYW1lIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FU
VFJJQlVURSkgZWxzZSAnJwpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgZGVmIGdlbmVyYXRlX21lc3Nh
Z2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYg
KGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpXG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0Uo
IlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhh
bmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnfVxuJykKIAogICAgIGlmIG5vdCByZWNlaXZlci5oYXNfYXR0cmlidXRlKFNU
UkVBTV9BVFRSSUJVVEUpIGFuZCAoc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmli
dXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKSk6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNTY0OTZkZGJhNWVhNDQy
NGQ0MmUxZmNmNWMyNTYzMzhlZDI4NGUyZi4uMzg0MWZhZjMxNzU2MWNjMmNiM2E0Mjg1YWYzNjUz
ZmY0YzIyN2M1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogICAg
IGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAg
ICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1
NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRp
b25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQg
bWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBib29sIFRlc3RXaXRoQ1ZQ
aXhlbEJ1ZmZlcjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcApp
bmRleCBjYWI1NTlmNmU1N2M4NTdiOTM0Mzc1ZWFiZTU5YTdiYjQ5YWVhYjQ0Li5hYWM2YmIzNWM4
ZTE4Yjk3NmJhMTY4ODUxYWY0ZmY1MjM5Y2E1OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNz
YWdlTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFRlc3RXaXRoSWZN
ZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGlu
ZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAl
cyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29k
ZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdF
KCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVj
b2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZl
ci5jcHAKaW5kZXggYTliMDc4OWM1OWFhOWE0ZTViYmIyMTU5YTVkMWVjMDNlNTg2NzI1Yy4uMjQ1
NGIzZGFlNjhkMGQ0NGUwNzUzN2ZhM2ViODI1MzA2ZTdhNDg0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNl
aXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aEltYWdlRGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBUZXN0
V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY28KICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZv
clRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1l
c3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkp
LCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhf
TUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0
aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0K
IAogYm9vbCBUZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNl
aXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggZDFhYzYyYjdhNjUyY2Y1Y2MzYWIxOThkZjY4
MDhiN2Q4ZjRmNzIyZC4uYzg5ZjQ3Nzg5MTZhOTQ1OWI3ZThlYTdkMTM4NTAxZDBjODVlOTZkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExl
Z2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNl
aXZlVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2UoSVBDOjpDb25uZWMKICAgICBpZiAoY29u
bmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNj
cmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2Ug
JXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpkaWRSZWNlaXZlU3luY1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcAppbmRleCAxOTlmM2MzMWY1YzA0ZGM5YjhmN2E3OGMyMzUyNTUxMTE0Yzgz
NDQxLi41MzYzODIzOGMzYTM2YzQ0NGM0OWY5MmViY2RjMWEwNjljMzlmNjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVz
c2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2
b2lkIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjbwogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRN
ZXNzYWdlRm9yVGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQ
Q19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhh
bmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2Fn
ZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6
ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklE
KCkpOwogfQogCiBib29sIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1
ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJl
YW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGNkYzFlZjE2MTBkZmNmZGEzYmUyNzg3
ZWM4MzMzOTgzNjg1OGEzMGMuLjE4YWRkOGE2ZmI2MDdiNzY4YTM3MDM5ODYzMzA1MDRjMjc4NjJm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW1CdWZmZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpECiAgICAgaWYgKGNvbm5l
Y3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3Jp
cHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBkZDJiNjFiYzM0MTE4Y2M2
YmIwNWM2ODc0YWIwMjgyMWI4ZjFiOWUxLi42Nzg1NGY4MDlmZTZmMmMyNTQyMmM4MjIwNTQzYTE4
YzBmZTBiNjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVzc2Fn
ZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBjbwogICAgIGlmIChjb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAg
cmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUi
IFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFu
ZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVj
b2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2Fn
ZVJlY2VpdmVyLmNwcAppbmRleCBjMjhlNWU4ZTg4YzcwZDIwOTVhMTNjMTgyNTBjNWMzYWM4NDE3
OTYyLi4xOWFlOWIwYzJkNGEyODNhMjRiNWNhZTgzZmQyODgwMTExMDkwNjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRl
c01lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0xMzUsNyAr
MTM1LDcgQEAgdm9pZCBUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjoKICAgICBpZiAoY29ubmVjdGlvbi5pZ25v
cmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8v
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVT
U0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJ
dTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IDQyZmI2MWIxNzc1MWUxMTk3MzJmYWFiMjZlMTU4YTUyNjM1NTM1MjEuLmJiYTg3Yzc2
MzcwZTc5OWUyZTNmNTkzYjIyZDJkOTY4YmFkODBmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTMzLDcg
KzEzMyw4IEBAIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50LmNwcAogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyUHJveHkuY3BwCiAKLU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHAgQG5vLXVuaWZ5CitOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwCitOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAKIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgQG5vLXVuaWZ5CkBA
IC04ODAsNSArODgxLDYgQEAgUmVtb3RlU2hhZGVyTW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVWaWV3TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAor
U2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKIFdlYkxvY2tSZWdpc3RyeVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggMmFkNzk2NDVkNmVmNjgzZGFkNGViMDc2ZjVkZDcyNDcyYmY4
NjBiOC4uMWI5ZDk3YzM4YzQxMmE3Y2M4ZDNmZmM0YTUyY2E1Y2U2NTY3NTVmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xOCw2ICsx
OCw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTExLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMTMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExNS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZDk4Njk5OTg1YjQ2ZmJmZDAyNTIzNzhiNTgy
ZTQyNDQ0NTU0ZTlkLi4zMjI3M2QzNDA0YTFhYWI1NTY3ZDgzODZmNmUxYzkyMmE4MTA5NDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTM5NSw2ICszOTUsOSBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVj
dG9yVUlQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94
eU1lc3NhZ2VzLmggKi87IH07CiAJCTFDQUVDQjY1Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLzsg
fTsKIAkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovOyB9OworCQkzQ0FFQ0I2NjI3
NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMy5jcHAgKi87IH07CisJCTRDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTE0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0
LmNwcCAqLzsgfTsKKwkJNUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MTUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNB
RUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovOyB9OwogCQkx
Q0FFQ0I2NzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUzMDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi87IH07CiAJCTFDQUVDQjY4Mjc0NjVBRTQw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCAqLzsgfTsKIAkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMDQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICov
OyB9OwpAQCAtODgxLDcgKzg4NCw2IEBACiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBO
ZXR3b3JrUlRDUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxREM0NTk0MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIu
aCAqLzsgfTsKIAkJNDFEQzQ1OUMxRTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
QzQ1OUExRTNEQkIyNDAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9Owog
CQk0MURENzJBQjI2ODIxNjczMDBBOTBDNzEgLyogTldTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBO
V1NQSS5oICovOyB9OwotCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5j
cHAgKi87IH07CiAJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVs
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkx
NUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNDFF
MjQyRTAyNkUwQzkwODAwOUE4QzY0IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTI0MkRGMjZFMEM5
MDQwMDlBOEM2NCAvKiBOZXR3b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCTQxRjA2
MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MERE
MTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKQEAgLTMyMTYsNiArMzIxOCw5IEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAv
KiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTA5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDkuY3Bw
OyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNv
dXJjZTEwOS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FF
Q0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBVbmlmaWVkU291cmNlMTExLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJL
aXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTEuY3BwIjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMTMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMy5jcHA7
IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTEzLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTRDQUVD
QjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UxMTQuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktp
dC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQk1Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTExNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTE1LmNwcDsg
cGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMTUuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNC
NUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVW5pZmllZFNvdXJjZTEwOC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBw
YXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExMC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0FFQ0I2
MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMTA0LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDQuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQxODgsNiArNDE5Myw5IEBACiAJCTQxRkNENkJEMjNDRTA0
M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUZDRDZCRjIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFC
QkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZE
MkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRN
ZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQx
MjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRBMkQ4QUQwMDYxRjM5MCAvKiBQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODI1NSw2ICs4MjYzLDkgQEAKIAkJCQkxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMC5jcHAgKi8sCiAJCQkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTEuY3BwICovLAogCQkJCTkzRTc5OUQxMjc2MEFBNUEwMDc0MDA4QSAv
KiBVbmlmaWVkU291cmNlMTEyLmNwcCAqLywKKwkJCQkzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTExMy5jcHAgKi8sCisJCQkJNENBRUNCNUUyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwICovLAorCQkJCTVDQUVDQjVFMjc0NjVBRTMwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gInVuaWZpZWQt
c291cmNlcyI7CiAJCQlwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMiOwpAQCAtMTA0MjAsNiArMTA0MzEsOSBAQAogCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1NUYg
LyogU2VydmljZVdvcmtlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suY3BwICovLAorCQkJCTQxRkZEMkRCMjc1QTU2MEMwMDUwMUJCRiAvKiBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLmggKi8sCisJCQkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJGIC8qIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gKi8sCiAJCQkJNDE1MTg1MzYyMjI3
MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovLAogCQkJCTQxNTE4
NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggKi8sCiAJCQkJ
NDE1MTg1MzgyMjI3MEY1MzAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2Fn
ZXMuaW4gKi8sCkBAIC0xNTMzMCw3ICsxNTM0NCw2IEBACiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAw
N0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0JDRjcwREUyNjE1RDA2RTAwRTRGQjcwIC8qIFNjb3BlZFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3RDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxOEU2OTE3
MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0
OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGRUJG
MzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTU0Miw2ICsxNTU1NSw5IEBACiAJCQkJMUNBRUNCNjgy
NzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFNzk5RDIyNzYwQUE1QjAwNzQwMDhBIC8qIFVuaWZpZWRTb3VyY2Ux
MTIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMTMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNENBRUNCNjYyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNBRUNC
NjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5
MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcAppbmRleCA4ZDc0NDA1YmVlYmNhZDU1MGQ3YzE1ZDk3Y2UyNDIyNmZkMjBkNWYxLi4w
M2VlYjhiMmQ4MTMxMGY5ZTk2NzdmZjNiMGMwZTk0YzM0NGY2ZmQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zOTMsNiArMzkzLDEyIEBAIGJvb2wgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OmlzVGhyb3R0bGVhYmxlKCkgY29uc3QKICAgICByZXR1cm4g
bV9pc1Rocm90dGxlYWJsZTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6Y29udmVydEZldGNoVG9Eb3dubG9hZChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSkKKyAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5jb252ZXJ0RmV0Y2hUb0Rv
d25sb2FkKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworfQor
CiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0Q2hl
Y2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAg
ICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpEaWRGYWlsSGVhcnRCZWF0Q2hlY2sgeyBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciB9LCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4
IGU3ZGY3ZDk0MWFjZTkwNjQxNGVjZmZmNTBjNGJhNDc5ZDE0NjRkZDUuLjA1ODBkOTgzMjI4YTcy
YmI4Yzk5NDljYTJiMWI0YzcxMThmYWM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaApAQCAtMTA2LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQo
U3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRUaHJv
dHRsZVN0YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpOworICAgIHZvaWQgY29udmVydEZldGNoVG9E
b3dubG9hZChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGNhbmNlbEZldGNoRG93bmxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIG1fcmVnaXN0cmFibGVEb21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDUyOGJlY2E0ZWE0Y2I1NzU4NmM1Zjg2ODFmZGFhYWIy
ZTM3MTFkMmMuLmQ1NDFiODAzMTkyYjhkNTRkMTgyMTdmYjExMjU2ZGYwMDY5NTMwMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00Myw2
ICs0Myw4IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJl
ZkNvdW50ZWQgewogICAgIFVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICAgICBDbG9zZSgpCiAgICAgU2V0VGhyb3R0bGVTdGF0
ZShib29sIGlzVGhyb3R0bGVhYmxlKQorCisgICAgQ29udmVydEZldGNoVG9Eb3dubG9hZChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBmZWU4ZmVhN2JjYzhk
NTljMDdlM2M1YmE0ZDYwOTU1MmE0ZDYyOGJmLi5jN2RlNDE2NjkxNzNjNDU4N2UzOTFiMjI2NzVk
YmNjYWJmZWFhMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckRvd25sb2FkVGFza01lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgpAQCAtODQsNyArODUsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCks
IHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmll
cik7CisgICAgaWYgKG1faXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IGJ1ZmZl
ci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyBidWZmZXIuZ2V0KCks
IHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2
ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwNyw3ICsx
MTEsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZl
Rm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3Ig
dGhlIGNhc2Ugb2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhy
b3VnaCBJUEMuCiAgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAg
aWYgKGJsb2JVUkwuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmll
cik7CisgICAgICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVGb3Jt
RGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1f
ZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURh
dGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2Zl
dGNoSWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxNDIs
MTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxv
YkNodW5rKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHMKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1faXNE
b3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgZGF0YSwgc2l6ZSB9LCBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZFJlY2VpdmVEYXRhIHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNp
emUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCkBAIC0xNTcsNyArMTY3LDEwIEBA
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVy
cm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6
OkRpZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9
CkBAIC0xNzQsNyArMTg3LDEwIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6ZGlkRmluaXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwg
bV9mZXRjaElkZW50aWZpZXIpOworICAgIGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmlu
aXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xOTQsNiArMjEw
LDEyIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkKICAg
ICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoKQoreworICAgIG1faXNEb3dubG9h
ZCA9IHRydWU7CisgICAgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9pZCBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpCiB7CiAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJGcmFt
ZUxvYWRlckNsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UsIGhhcyBjb25uZWN0aW9u
ICVkLCBkaWRGaW5pc2ggJWQsIHJlc3BvbnNlIHR5cGUgJWxkIiwgISFtX2Nvbm5lY3Rpb24sIG1f
ZGlkRmluaXNoLCBzdGF0aWNfY2FzdDxsb25nPihtX3Jlc3BvbnNlRGF0YS5pbmRleCgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKaW5kZXggYjM0N2NhZDJhYjVmNTcxYjFh
MGUyMDcyMDgwNDM2N2Q3NzAxODYwMC4uMDFmNjEwYmQ0MzNhMmU5YWZjOWExZmRkNTRiMDg0MzBi
OTgzN2Q3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtNTYsNiAr
NTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAgdm9p
ZCBjYW5jZWwoKSBmaW5hbDsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkg
ZmluYWw7CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgZmluYWw7CiAKICAgICB2
b2lkIGNsZWFudXAoKTsKICAgICAKQEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNlIH07
CiAgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiwgUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNl
RXJyb3I+PiBtX3Jlc3BvbnNlRGF0YTsKICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsK
KyAgICBib29sIG1faXNEb3dubG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhZTg5NWY3YjIwY2U5ZTg3ODYzMTRhN2ZkNzgwMzUzNTBlNjNmYzMyLi4zM2IyYmYzNmIzOGZl
MDE5ZTZlNGFhNTJmMmVkNTA2YTA5Yjk1N2RmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMTMgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBTZXJ2aWNlV29ya2Vy
IGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMTQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTcyMTkzND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCB0ZXN0IHJ1bm5lciBB
UEkgdG8gbG9nIHRoZSB0b3RhbCBkb3dubG9hZCBzaXplLgorICAgICAgICBUaGlzIGhlbHBzIGVu
c3VyaW5nIHRoYXQgc2VydmljZSB3b3JrZXIgbG9hZHMgYXJlIGNvcnJlY3RseSBkb3dubG9hZGVk
IGFuZCBkbyBub3QgcmVseSBvbiBuZXR3b3JraW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcDoKKwogMjAyMS0xMi0xMyAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFA
YXBwbGUuY29tPgogCiAgICAgICAgIERpc3Rpbmd1aXNoIGNvbnRpZ3VvdXMgU2hhcmVkQnVmZmVy
IGZyb20gbm9uLWNvbnRpZ3VvdXMgb25lIGFuZCBndWFyYW50ZWUgaW1tdXRhYmlsaXR5CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA3Y2VhMDY3NmQyN2I3MjcwMTUwMjk1OWQxN2UwY2I1
YzdjZTBlYzZiLi41Zjg1Mjk5MjA2MzczMWUwYzIxMjhiMjBiYmVmNmZiNzcwZGVjYjk1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTM5LDYgKzM5LDcgQEAgaW50ZXJmYWNlIFRlc3RS
dW5uZXIgewogICAgIC8vIERvd25sb2Fkcy4KICAgICB1bmRlZmluZWQgd2FpdFVudGlsRG93bmxv
YWRGaW5pc2hlZCgpOwogICAgIHVuZGVmaW5lZCBzZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNr
cyhib29sZWFuIHZhbHVlKTsKKyAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXpl
KGJvb2xlYW4gdmFsdWUpOwogCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSX1RSRUVf
U0hPV19BTExfTEFZRVJTICAgICAgICAgICAgPSAxOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFJFTkRFUl9UUkVFX1NIT1dfTEFZRVJfTkVTVElORyAgICAgICAgID0gMjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IGUxZmNlMmNhNTFmMWIwMmQ5YzQzN2IwOTllZjcxODM2NjE1OTBjYzIuLmEzMjgwZGYxNmNkNDRm
NmQwOTgwMDhlNjE5MmE0YzExMzA0YWUyMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTAwOCw2ICsxMDA4LDEx
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MoYm9vbCB2
YWx1ZSkKICAgICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tz
IiwgdmFsdWUpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkU2l6
ZShib29sIHZhbHVlKQoreworICAgIHBvc3RQYWdlTWVzc2FnZSgiU2V0U2hvdWxkTG9nRG93bmxv
YWRTaXplIiwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhlbnRpY2F0aW9u
VXNlcm5hbWUoSlNTdHJpbmdSZWYgdXNlcm5hbWUpCiB7CiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJT
ZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIiwgdG9XSyh1c2VybmFtZSkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAzMWYx
MDZmOTkzYjhiNjc1N2E5NjkyMmQ2YjBjZDRjNGM0NDY4MWFkLi41YzZhOTZjYWUwMWY1OTI1NTQ1
YjhmMDYwZWFmZGYyZDZiZTFiZjI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBEb3dubG9hZHMKICAgICBib29sIHNob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZEZpbmlzaEFmdGVyRG93bmxvYWQ7IH0KICAgICB2b2lkIHNl
dFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkTG9n
RG93bmxvYWRTaXplKGJvb2wpOwogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZEFsbG93RWRpdGluZzsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGVkMjgwMmZiMWU3NjZkYzVkZTY3YzQ0ZDE1NzY2
MTYzMmMzOTMxYTMuLjZiOGFjYmZkZmJjNGU2MWE0NjE3ODdlYzc5N2Q2NzEzOTZjYzJjZGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDYsNyArMTQ2
LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmF2aWdhdGlvbkRpZEJlY29tZURvd25sb2FkU2hh
cmVkKFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIGMKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRv
d25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwsCiAgICAgICAgIFRlc3RDb250cm9s
bGVyOjpkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwKICAgICAgICAg
VGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lLAot
ICAgICAgICBudWxscHRyLCAvLyBkaWRXcml0ZURhdGEKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6
OmRvd25sb2FkRGlkV3JpdGVEYXRhLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWRE
aWRGaW5pc2gsCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwKICAgICB9
OwpAQCAtMTEwOCw2ICsxMTA4LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRv
Q29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICAgICAg
Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogICAgIH0KIAorICAgIG1f
ZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9IHsgfTsKKwogICAgIHJldHVybiBtX2RvbmVSZXNl
dHRpbmc7CiB9CiAKQEAgLTIyMzcsNiArMjIzOSw4IEBAIFdLU3RyaW5nUmVmIFRlc3RDb250cm9s
bGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0Rvd25sb2FkUmVm
CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmluaXNoKFdLRG93bmxvYWRSZWYp
CiB7CisgICAgaWYgKG1fc2hvdWxkTG9nRG93bmxvYWRTaXplKQorICAgICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIkRvd25sb2FkIHNpemU6ICIsIG1fZG93
bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbi52YWx1ZV9vcigwKSwgIi5cbiIpKTsKICAgICBpZiAobV9z
aG91bGRMb2dEb3dubG9hZENhbGxiYWNrcykKICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
b3V0cHV0VGV4dCgiRG93bmxvYWQgY29tcGxldGVkLlxuIik7CiAgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7CkBAIC0yMjY5LDYgKzIyNzMsMTggQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V0tEb3dubG9hZFJlZiwgV0sKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKG51bGxwdHIsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKIH0KIAordm9pZCBUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEobG9uZyBsb25nIHRvdGFsQnl0ZXNXcml0dGVu
KQoreworICAgIGlmICghbV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcykKKyAgICAgICAgcmV0
dXJuOworICAgIG1fZG93bmxvYWRUb3RhbEJ5dGVzV3JpdHRlbiA9IHRvdGFsQnl0ZXNXcml0dGVu
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFdyaXRlRGF0YShXS0Rvd25s
b2FkUmVmIGRvd25sb2FkLCBsb25nIGxvbmcgYnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxC
eXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kb3dubG9hZERpZFdyaXRlRGF0YSh0b3RhbEJ5
dGVzV3JpdHRlbik7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OndlYlByb2Nlc3NEaWRUZXJt
aW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aGVuIGNyYXNoIGxvZ3MgYXJl
IGJlaW5nIHNhdmVkIG9uIFdpbmRvd3MsIHNvCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKaW5kZXggNWNkNDlmYWYzMGRlNzhjY2VhY2Q1YWQwM2M4NDg2ZGM1ZmM5MWMxMC4u
NDAzZWRjMjNlODUwYTE0ODRjNjEyZDU5ZDRkYmRiMDk5MWEyYzE3YiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTkwLDYgKzE5MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3MoYm9vbCBzaG91bGRMb2cp
IHsgbV9zaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzID0gc2hvdWxkTG9nOyB9CiAgICAg
dm9pZCBzZXRTaG91bGRMb2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJv
b2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZSA9IHNob3VsZExvZzsgfQogICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxs
YmFja3MoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyA9IHNo
b3VsZExvZzsgfQorICAgIHZvaWQgc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKGJvb2wgc2hvdWxk
TG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRTaXplID0gc2hvdWxkTG9nOyB9CiAKICAgICBib29s
IGlzQ3VycmVudEludm9jYXRpb24oVGVzdEludm9jYXRpb24qIGludm9jYXRpb24pIGNvbnN0IHsg
cmV0dXJuIGludm9jYXRpb24gPT0gbV9jdXJyZW50SW52b2NhdGlvbi5nZXQoKTsgfQogCkBAIC00
NzMsNyArNDc0LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZG93bmxvYWREaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0Rvd25sb2FkUmVmLCBXS1VSTFJlc3BvbnNlUmVmLCBX
S1VSTFJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBib29sIGRvd25sb2FkRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXF1ZXN0UmVmKTsKICAg
ICBzdGF0aWMgdm9pZCBkb3dubG9hZERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShX
S0Rvd25sb2FkUmVmLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKLSAgICAKKworICAgIHZvaWQgZG93bmxvYWREaWRXcml0ZURhdGEobG9uZyBs
b25nIHRvdGFsQnl0ZXNXcml0dGVuKTsKKyAgICBzdGF0aWMgdm9pZCBkb3dubG9hZERpZFdyaXRl
RGF0YShXS0Rvd25sb2FkUmVmLCBsb25nIGxvbmcgYnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90
YWxCeXRlc1dyaXR0ZW4sIGxvbmcgbG9uZyB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKKwogICAgIHN0YXRpYyB2b2lkIHdlYlByb2Nlc3NEaWRUZXJt
aW5hdGUoV0tQYWdlUmVmLCAgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24sIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogICAgIHZvaWQgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZShXS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbik7CiAKQEAgLTY2Myw2ICs2NjcsOSBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQgeyBmYWxzZSB9OwogCiAg
ICAgYm9vbCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCB7IHRydWUgfTsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8bG9uZyBsb25nPiBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW47
CisgICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
aW5kZXggM2RmYWM1ZmMwMDllNDk2NTQ0NGU2YjQwOTFkYmVlYjJlMjIxZDJiYi4uNzJmYTgyYmJj
MDEwMjk2ZjA0ZDEzMGVjOWJjNmE0MzU3Y2JkMGU5MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTUzNyw2ICs1MzcsMTEgQEAgdm9pZCBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVz
c2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U2hvdWxkTG9nRG93bmxvYWRTaXplIikp
IHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3VsZExvZ0Rvd25s
b2FkU2l6ZShib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIpKSB7CiAgICAgICAgIFdLU3RyaW5nUmVmIHVzZXJu
YW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSh0b1dURlN0cmluZyh1c2VybmFt
ZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDI5MzllNDRmMGQxNjczYmIzYzAzNDAzODY4YjBlMjQ5YjJkNjM4NzYuLmNi
MGIzNTA4N2ZkZWZkODI5YTNhYTQwOWRjYzBkNGY3ZDFjNzJkMjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NyBAQAorMjAyMS0xMi0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItZG93bmxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC1ib2R5Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRp
cmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQt
dGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9h
ZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5Ogor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMTItMTIgIEFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRkIHBhcnRpYWwgdW5pY29kZS1iaWRp
IHN1cHBvcnQgb24gaW5saW5lIGxldmVsIGJveGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxv
YWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwppbmRleCBkNWM2NjMwYmI1
MTFmNWY3YWIyOGVkZDIxYjQwYWE4ZmMzMzQ2ZWY3Li42MDAyOTIzOWQzN2UwYzJlZmVhMjFjMjU1
ZGVmMmZhZmY3YmZiODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMKQEAgLTEsMyArMSwyMSBAQAogc2VsZi5hZGRF
dmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0
LnVybC5pbmNsdWRlcygiZG93bmxvYWQtYm9keSIpKSB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNl
ID0gbmV3IFJlc3BvbnNlKCJhIGRvd25sb2FkIGJvZHkiLCB7ImhlYWRlcnMiIDogW1siQ29udGVu
dC1UeXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOworICAgICAgICBldmVudC5yZXNwb25k
V2l0aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50LnJl
cXVlc3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1zdHJlYW0iKSkgeworICAgICAgICBjb25zdCBz
dHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IChjb250cm9s
bGVyKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2Rl
cigpOworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSgi
YSBmaXJzdCBjaHVuaywgIikpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBj
b250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoInRoZW4gYSBzZWNvbmQgY2h1bmsiKSk7
IH0sIDEwMCk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIu
Y2xvc2UoKTsgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNv
bnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSwgeyJoZWFkZXJzIiA6IFtbIkNvbnRl
bnQtVHlwZSIsICJhcHBsaWNhdGlvbi9iaW5hcnkiXV19KTsKKyAgICAgICAgZXZlbnQucmVzcG9u
ZFdpdGgocmVzcG9uc2UpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGV2ZW50LnJlc3Bv
bmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QudXJsKSk7CiB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2Fk
LWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjJlYmMyYjg2ZTY2YmIzOWM5YmMwOWQzZGE5M2Y0MDMyNDMxYmNmNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAiZG93bmxvYWQtYm9keSIKK0Rvd25sb2FkIHNpemU6IDE1LgorRG93bmxvYWQgY29t
cGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkMmQ0ODBhOTFkYWFjMWM2ZDRkMGVlYzg5ZWNjMjg3
ZjRiYTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkTG9nRG93bmxvYWRTaXplKHRydWUpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2Fk
RmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVN
SU1FVHlwZXModHJ1ZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdh
aXQgaW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdv
cmtlci5qcyIsICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9j
YXRpb24gPSAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZG93bmxvYWQtYm9keSI7Cit9Citk
b1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQt
c3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDlhMTllYmUzN2EzMTRiM2Y1ODYyNDhhNzY2N2ZhNTBjMGYzOWZkYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2Vz
dGVkIGZpbGVuYW1lICJkb3dubG9hZC1zdHJlYW0iCitEb3dubG9hZCBzaXplOiAzNC4KK0Rvd25s
b2FkIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3du
bG9hZC1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3M2ZlNDY5NjQwNjQzMzAzYmUw
M2ZhNzQwZGM4YzFjYmE4MDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0
UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRV
bmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3Qo
KQoreworICAgIGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC13b3JrZXIuanMiLCAiL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvIik7Cisg
ICAgd2luZG93LmxvY2F0aW9uID0gIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Rvd25sb2Fk
LXN0cmVhbSI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGQwOGVmODQ2ZDMyZjZlYzkxZDk0MjczYzljMjRlMGYwZjJjYTYyMDIuLjllMzMz
ZDU2OTFlOTliYmU1ZGUzMzJiNWNhZmIxZTRmZGVjYTM3MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw1IEBACiBEb3dubG9hZCBzdGFydGVkLgogRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICJkb3dubG9hZC1iaW5hcnkucHkiCitEb3dubG9hZCBzaXplOiA5LgogRG93bmxv
YWQgY29tcGxldGVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0
cHMuaHRtbAppbmRleCA4YzlhZGEzZmM4MTJjMzYwOTdiM2QwMzk0MTY0MDkzNWNiMjJlNzQ2Li40
YTVhYTg3YjRlYzBkM2Q3M2M5NzE2MWUwNjJmYzdkYzY4YTE3YjI0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9h
ZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKQEAgLTcsNiArNyw3IEBACiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
d25sb2FkRmluaXNoZWQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxh
eWFibGVNSU1FVHlwZXModHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10
aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25s
b2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2ZjM0M2M1MWQ1OWExOTdiMDJjZjVkZjMxOTczNzEzYjYzZDdhYjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBV
Ukwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQt
c2NyaXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmJhOGM3YmU0ZWE2OTgwNTA4YWZmZTcxMDVjZDRmMGUyOWNiZTQz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVl
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3Vs
ZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdv
cmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rv
d25sb2FkPXllcyZuby1mZXRjaC1ldmVudC1oYW5kbGluZz15ZXMmdG9rZW49IiArIHV1aWQ7Cit2
YXIgZnJhbWU7Citjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKK2Z1bmN0
aW9uIHdhaXRVbnRpbEFjdGl2YXRpbmcoKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiYWN0aXZhdGluZyIpCisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgIH0pOworfQorCitmdW5jdGlvbiB0cmln
Z2VyQWN0aXZhdGlvbigpCit7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJhY3RpdmF0
ZSIpOworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAo
KSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogdXJsIH0pOworICAg
IGlmICghcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisKKyAg
ICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3Jr
ZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7
CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0aW5nKCk7CisKKyAgICBmZXRjaCh1cmwgKyAi
JnZhbHVlPXVzZS1wcmVsb2FkIiwgeyBtZXRob2Q6ICdQT1NUJyB9KTsKKworICAgIC8vIExvYWQg
aWZyYW1lLCB3aXRoIGFjdGl2YXRpbmcgd29ya2VyLCBzbyBwcmVsb2FkIHdpbGwgc3RhcnQgYW5k
IHdpbGwgYmUgdGhlIG9uZSB0byBiZSBkb3dubG9hZGVkLCBkaXJlY3RseSB0aHJvdWdoIHByZWxv
YWQgc2luY2Ugc2VydmljZSB3b3JrZXIgZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LgorICAgIC8v
IERvd25sb2FkIHNpemUgc2hvdWxkIGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25z
dCBwcm9taXNlID0gd2l0aElmcmFtZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsK
K30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmMzQzYzUxZDU5YTE5N2IwMmNmNWRmMzE5
NzM3MTNiNjNkN2FiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXBy
ZWxvYWQtc2NyaXB0LnB5LnZjZiIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQgY29tcGxl
dGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtZG93bmxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmZGZlYzQyYmMzMjEyMDcwMzJj
OTFmODQ0ODdiMjA0YmU1MTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAg
dGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERvd25s
b2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKwordmFyIGFjdGl2ZVdvcmtlcjsK
K3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2NyaXB0LnB5P2Rvd25sb2Fk
PXllcyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7CisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBvcnQyLm9u
bWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJh
Y3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAg
fSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3Jr
ZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgp
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRj
aCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lz
dHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIs
IHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgewor
ICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24g
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3Bl
IDogdXJsIH0pOworICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9y
dDEgfSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmco
KTsKKworICAgIGZldGNoKHVybCArICImdmFsdWU9dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BP
U1QnIH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNv
IHByZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQs
IHRocm91Z2ggdGhlIHNlcnZpY2Ugd29ya2VyLgorICAgIC8vIERvd25sb2FkIHNpemUgc2hvdWxk
IGJlIHNpemUgb2YgInVzZS1wcmVsb2FkIi4KKyAgICBjb25zdCBwcm9taXNlID0gd2l0aElmcmFt
ZSh1cmwpOworCisgICAgdHJpZ2dlckFjdGl2YXRpb24oKTsKK30KK2RvVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC13b3JrZXIuanMKaW5kZXggZDA0YTQ5YTc4Y2Q4OTI5YTRmZDBkYjRhYjBjZWI4MDFh
MDE5NTBlOC4uNjg1MGUwMWRhOWYxYjY2ZmNjZGYzYThmMTc4OTYxMTc0M2I4MWJiZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMjMs
NSArMjMsNyBAQCBvbmFjdGl2YXRlID0gKGV2ZW50KSA9PiB7CiB9CiAKIHNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwu
aW5jbHVkZXMoIm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nIikpCisgICAgICAgIHJldHVybjsKICAg
ICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7CiB9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5CmluZGV4IDIwNjc4MzZmNTQxNzAzZGU4NGYwOGI4ZWIzZTZjYzhjMzM4MTM5ZmUuLjEy
MDYyYjhjNWUxMzRmOWM1MDdkMjA5YTQ0NDkzYWIyNzgyMTg1MjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13
b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5w
eQpAQCAtMzEsNSArMzEsMTAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGlm
IG5vdCB2YWx1ZToKICAgICAgICAgdmFsdWUgPSBiIm5vdGhpbmciCiAgICAgcmVzcG9uc2UuaGVh
ZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisKKyAgICBpZiBiImRvd25s
b2FkIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvdmNhcmQiKQorICAgICAgICByZXR1cm4gdmFsdWUuZGVjb2RlKCkK
KwogICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwi
KQogICAgIHJldHVybiAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnJXMnOzwv
c2NyaXB0PjwvYm9keT48L2h0bWw+IiAlIHZhbHVlLmRlY29kZSgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZp
Y2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJl
Y3QtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWEx
YmVjZjZlMGQzNmZhMWIxYjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtc2Ny
aXB0LnB5IgorRG93bmxvYWQgc2l6ZTogMTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
ZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNo
LXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI3OGY4YWU1ZGJkM2FhMWJlY2Y2ZTBkMzZmYTFiMWIyZTUwZDkxOWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3Jp
cHQucHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2FkIGNvbXBsZXRlZC4KKwo=
</data>
<flag name="commit-queue"
          id="472506"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>