<?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>204147</bug_id>
          
          <creation_ts>2019-11-13 01:19:42 -0800</creation_ts>
          <short_desc>Handle page closure for stale-while-revalidate revalidations</short_desc>
          <delta_ts>2020-03-19 08:15:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/22292</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=209281</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>201461</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589792</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-11-13 01:19:42 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=201461#c10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592754</commentid>
    <comment_count>1</comment_count>
      <attachid>384145</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-11-22 05:46:20 -0800</bug_when>
    <thetext>Created attachment 384145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593692</commentid>
    <comment_count>2</comment_count>
      <attachid>384361</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-11-26 09:20:22 -0800</bug_when>
    <thetext>Created attachment 384361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593726</commentid>
    <comment_count>3</comment_count>
      <attachid>384367</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-11-26 11:23:15 -0800</bug_when>
    <thetext>Created attachment 384367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594979</commentid>
    <comment_count>4</comment_count>
      <attachid>384705</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-12-03 04:38:42 -0800</bug_when>
    <thetext>Created attachment 384705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594989</commentid>
    <comment_count>5</comment_count>
      <attachid>384711</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-12-03 06:15:12 -0800</bug_when>
    <thetext>Created attachment 384711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595415</commentid>
    <comment_count>6</comment_count>
      <attachid>384711</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-12-04 01:22:45 -0800</bug_when>
    <thetext>Comment on attachment 384711
Patch

This still needs a test but I think it can be reviewed to check if it is the right direction. Some remarks:

- I picked stopAllLoaders to catch both page close and starting a new navigation within a page.
- I do not like adding another HashMap but I think it is hard to avoid.
- The cleanup only gets triggered for main frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597951</commentid>
    <comment_count>7</comment_count>
      <attachid>384711</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-12 00:36:48 -0800</bug_when>
    <thetext>Comment on attachment 384711
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1844
&gt; +        platformStrategies()-&gt;loaderStrategy()-&gt;pageContextRemoved(*m_frame.page());

We might actually want to send the message for all contexts since we want to cancel the revalidation when a context is going away and not when its top level context is going away.
We may thus need to send pageID/frameID and rename pageContextRemoved.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:339
&gt; +    m_pendingAsyncRevalidationByPage.remove(webPageID);

I do not see here where we are cancelling the async revalidation of the page.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:204
&gt; +    HashMap&lt;WebCore::PageIdentifier, std::unique_ptr&lt;Vector&lt;Key&gt;&gt;&gt; m_pendingAsyncRevalidationByPage;

Why is it a unique_ptr&lt;Vector&gt; and not a Vector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598289</commentid>
    <comment_count>8</comment_count>
      <attachid>385586</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-12-13 01:51:15 -0800</bug_when>
    <thetext>Created attachment 385586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598298</commentid>
    <comment_count>9</comment_count>
      <attachid>384711</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2019-12-13 02:58:35 -0800</bug_when>
    <thetext>Comment on attachment 384711
Patch

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

I started on the test but maybe you can give some clues, it seems really hard to verify that the right thing is done. Even internal testing API seems difficult since we need to verify things in the network process?

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1844
&gt;&gt; +        platformStrategies()-&gt;loaderStrategy()-&gt;pageContextRemoved(*m_frame.page());
&gt; 
&gt; We might actually want to send the message for all contexts since we want to cancel the revalidation when a context is going away and not when its top level context is going away.
&gt; We may thus need to send pageID/frameID and rename pageContextRemoved.

Ok, I initially did it this way to reduce the IPC since I was not sure how intrusive it would be. I now renamed it to browserContextRemoved.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:339
&gt;&gt; +    m_pendingAsyncRevalidationByPage.remove(webPageID);
&gt; 
&gt; I do not see here where we are cancelling the async revalidation of the page.

Oops you are right, should be fixed now.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:204
&gt;&gt; +    HashMap&lt;WebCore::PageIdentifier, std::unique_ptr&lt;Vector&lt;Key&gt;&gt;&gt; m_pendingAsyncRevalidationByPage;
&gt; 
&gt; Why is it a unique_ptr&lt;Vector&gt; and not a Vector?

No real reason, now Use just Vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598806</commentid>
    <comment_count>10</comment_count>
      <attachid>385586</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-15 23:50:14 -0800</bug_when>
    <thetext>Comment on attachment 385586
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:341
&gt; +        m_pendingAsyncRevalidations.remove(key);

It seems we take all keys of the page while we should only take the keys that match the frame ID and remove the corresponding revalidations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598807</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-15 23:56:50 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #9)
&gt; Comment on attachment 384711 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384711&amp;action=review
&gt; 
&gt; I started on the test but maybe you can give some clues, it seems really
&gt; hard to verify that the right thing is done. Even internal testing API seems
&gt; difficult since we need to verify things in the network process?

One possibility would be to write a python script that is hanging for 0.5 seconds in case this is a stale revalidation.
We could first load an iframe to get the resource.
We could then load a new iframe to get the same resource, it should trigger revalidation. Revalidation will be hanging.
We could then remove the iframe, this should remove the ongoing revalidation.
We could then load a new iframe to get the same resource, it should probably get the cached resource and trigger a revalidation instead of reusing the cancelled revalidation (that would still be hanging without the patch).

It might be good to load in parallel another iframe with a different URL that triggers revalidation so that we can check that one frame revalidation is cancelled but not all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603031</commentid>
    <comment_count>12</comment_count>
      <attachid>386844</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-06 07:19:16 -0800</bug_when>
    <thetext>Created attachment 386844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604595</commentid>
    <comment_count>13</comment_count>
      <attachid>387221</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-09 06:53:05 -0800</bug_when>
    <thetext>Created attachment 387221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605021</commentid>
    <comment_count>14</comment_count>
      <attachid>387317</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-10 00:01:42 -0800</bug_when>
    <thetext>Created attachment 387317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605083</commentid>
    <comment_count>15</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-10 06:00:24 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; (In reply to Rob Buis from comment #9)
&gt; &gt; Comment on attachment 384711 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384711&amp;action=review
&gt; &gt; 
&gt; &gt; I started on the test but maybe you can give some clues, it seems really
&gt; &gt; hard to verify that the right thing is done. Even internal testing API seems
&gt; &gt; difficult since we need to verify things in the network process?
&gt; 
&gt; One possibility would be to write a python script that is hanging for 0.5
&gt; seconds in case this is a stale revalidation.

It seems not so easy to detect stale revalidations. One way I found that worked is responding with ETag and then the stale revalidation request will contain If-None-Match. However the memory cache can also send out If-None-Match so maybe we need to skip memory cache for s-w-r responses first:
https://bugs.webkit.org/show_bug.cgi?id=205992

&gt; We could first load an iframe to get the resource.
&gt; We could then load a new iframe to get the same resource, it should trigger
&gt; revalidation. Revalidation will be hanging.
&gt; We could then remove the iframe, this should remove the ongoing revalidation.
&gt; We could then load a new iframe to get the same resource, it should probably
&gt; get the cached resource and trigger a revalidation instead of reusing the
&gt; cancelled revalidation (that would still be hanging without the patch).

I tried to add that test case to this patch. Although I think the memory cache issue maybe needs to be fixed first (https://bugs.webkit.org/show_bug.cgi?id=205992), I think this patch can be reviewed again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609539</commentid>
    <comment_count>16</comment_count>
      <attachid>387317</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-22 07:45:42 -0800</bug_when>
    <thetext>Comment on attachment 387317
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:329
&gt; +            keys.removeFirst(key);

keys will probably be a new vector copied from m_pendingAsyncRevalidationByPage owned vector.
So removing might not work here.
Can you add some ASSERTS as well so that we are sure &apos;keys&apos; contains key for instance.

Also, why not simplify things and have something like a Map&lt;GlobalID, WeakHashSet&lt;AsyncRevalidation&gt;&gt;.
This would allow to write something like:
auto loaders = m_pendingAsyncRevalidationByPage.take(globalID);
for (auto&amp; loader : loaders)
    loader-&gt;cancel();

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:340
&gt; +    for (auto key : keys) {

s/auto/auto&amp;/

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:342
&gt; +        if (revalidation)

if (auto revalidation = ...)
Should we use take instead of get here as well, or cancel will do it automatically?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610025</commentid>
    <comment_count>17</comment_count>
      <attachid>388529</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-23 02:30:58 -0800</bug_when>
    <thetext>Created attachment 388529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610067</commentid>
    <comment_count>18</comment_count>
      <attachid>388536</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-23 05:29:55 -0800</bug_when>
    <thetext>Created attachment 388536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610085</commentid>
    <comment_count>19</comment_count>
      <attachid>388540</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-23 07:10:40 -0800</bug_when>
    <thetext>Created attachment 388540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610555</commentid>
    <comment_count>20</comment_count>
      <attachid>388659</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-24 00:24:08 -0800</bug_when>
    <thetext>Created attachment 388659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610571</commentid>
    <comment_count>21</comment_count>
      <attachid>387317</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-24 01:58:58 -0800</bug_when>
    <thetext>Comment on attachment 387317
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:329
&gt;&gt; +            keys.removeFirst(key);
&gt; 
&gt; keys will probably be a new vector copied from m_pendingAsyncRevalidationByPage owned vector.
&gt; So removing might not work here.
&gt; Can you add some ASSERTS as well so that we are sure &apos;keys&apos; contains key for instance.
&gt; 
&gt; Also, why not simplify things and have something like a Map&lt;GlobalID, WeakHashSet&lt;AsyncRevalidation&gt;&gt;.
&gt; This would allow to write something like:
&gt; auto loaders = m_pendingAsyncRevalidationByPage.take(globalID);
&gt; for (auto&amp; loader : loaders)
&gt;     loader-&gt;cancel();

Great idea, things get simpler when using WeakHashSet.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:340
&gt;&gt; +    for (auto key : keys) {
&gt; 
&gt; s/auto/auto&amp;/

Done.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:342
&gt;&gt; +        if (revalidation)
&gt; 
&gt; if (auto revalidation = ...)
&gt; Should we use take instead of get here as well, or cancel will do it automatically?

I changed the logic so cancel will do it automatically by calling the completion handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610637</commentid>
    <comment_count>22</comment_count>
      <attachid>388659</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-24 06:45:35 -0800</bug_when>
    <thetext>Comment on attachment 388659
Patch

Seems almost ready to me, I have just one question with regards to the new CachedResourceLoader check.

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:1173
&gt; +    if (existingResource-&gt;response().cacheControlStaleWhileRevalidate()) {

The comment does not match the check, which is about checking for cache control stale while revalidate.
Ditto for the message.
Also, I am not sure we need this check.
It seems that we should reload only if the resource is expired, otherwise we should be able to use it.
Can you clarify?

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:325
&gt; +        auto revalidation = makeUnique&lt;AsyncRevalidation&gt;(*this, frameID, request, WTFMove(entry), [this, key](AsyncRevalidation::Result result) {

s/AsyncRevalidation::Result/auto

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:236
&gt; +    HashMap&lt;GlobalFrameID, WTF::WeakHashSet&lt;AsyncRevalidation&gt;&gt; m_pendingAsyncRevalidationByPage;

Do we need WTF::?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611329</commentid>
    <comment_count>23</comment_count>
      <attachid>388838</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-27 00:44:19 -0800</bug_when>
    <thetext>Created attachment 388838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611336</commentid>
    <comment_count>24</comment_count>
      <attachid>388839</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-27 01:10:56 -0800</bug_when>
    <thetext>Created attachment 388839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611350</commentid>
    <comment_count>25</comment_count>
      <attachid>388659</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-27 02:57:29 -0800</bug_when>
    <thetext>Comment on attachment 388659
Patch

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

&gt;&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:1173
&gt;&gt; +    if (existingResource-&gt;response().cacheControlStaleWhileRevalidate()) {
&gt; 
&gt; The comment does not match the check, which is about checking for cache control stale while revalidate.
&gt; Ditto for the message.
&gt; Also, I am not sure we need this check.
&gt; It seems that we should reload only if the resource is expired, otherwise we should be able to use it.
&gt; Can you clarify?

Sorry, that was a copy pasta mistake.
The problem is that frame-removal.htmlt needs to be able to identify stale revalidations to check that the cancel is performed. The standard revalidate for the memory cache sends the same headers, so I propose for stale memory resources with s-w-r headers we leave it up to the network process to handle the revalidate process, and then the test will work fine, but will fail if the revalidation cancel is not done, as the test should.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:325
&gt;&gt; +        auto revalidation = makeUnique&lt;AsyncRevalidation&gt;(*this, frameID, request, WTFMove(entry), [this, key](AsyncRevalidation::Result result) {
&gt; 
&gt; s/AsyncRevalidation::Result/auto

Done.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:236
&gt;&gt; +    HashMap&lt;GlobalFrameID, WTF::WeakHashSet&lt;AsyncRevalidation&gt;&gt; m_pendingAsyncRevalidationByPage;
&gt; 
&gt; Do we need WTF::?

No, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616061</commentid>
    <comment_count>26</comment_count>
      <attachid>388839</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-07 00:35:43 -0800</bug_when>
    <thetext>Comment on attachment 388839
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:341
&gt; +        fprintf(stderr, &quot;browsingContextRemoved cancel!!!\n&quot;);

Remove fprintf.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:76
&gt; +};

We normally do not add ; for namespaces.
We could add // NetworkCache comments as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616062</commentid>
    <comment_count>27</comment_count>
      <attachid>390061</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-02-07 00:41:10 -0800</bug_when>
    <thetext>Created attachment 390061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616063</commentid>
    <comment_count>28</comment_count>
      <attachid>388839</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-02-07 00:42:48 -0800</bug_when>
    <thetext>Comment on attachment 388839
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:341
&gt;&gt; +        fprintf(stderr, &quot;browsingContextRemoved cancel!!!\n&quot;);
&gt; 
&gt; Remove fprintf.

Ouch! Maybe there should be a pre upload warning hook to protect me :) Fixed.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:76
&gt;&gt; +};
&gt; 
&gt; We normally do not add ; for namespaces.
&gt; We could add // NetworkCache comments as well.

Sure, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622096</commentid>
    <comment_count>29</comment_count>
      <attachid>390061</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-24 02:48:07 -0800</bug_when>
    <thetext>Comment on attachment 390061
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:72
&gt; +    if (m_networkLoad) {

We could also write it if (!m_networkLoad) return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622123</commentid>
    <comment_count>30</comment_count>
      <attachid>391530</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-02-24 06:02:44 -0800</bug_when>
    <thetext>Created attachment 391530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622156</commentid>
    <comment_count>31</comment_count>
      <attachid>391530</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-24 07:50:44 -0800</bug_when>
    <thetext>Comment on attachment 391530
Patch

Clearing flags on attachment: 391530

Committed r257206: &lt;https://trac.webkit.org/changeset/257206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622157</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-24 07:50:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622158</commentid>
    <comment_count>33</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-24 07:51:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59725101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630622</commentid>
    <comment_count>34</comment_count>
      <attachid>391530</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-03-16 20:50:07 -0700</bug_when>
    <thetext>Comment on attachment 391530
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Test: imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html

Has this test been merged into WPT? I can&apos;t see it on wpt/master. Is there any PR open for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630662</commentid>
    <comment_count>35</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-17 01:41:31 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #34)
&gt; Comment on attachment 391530 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391530&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        Test: imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html
&gt; 
&gt; Has this test been merged into WPT? I can&apos;t see it on wpt/master. Is there
&gt; any PR open for it?

Good find, I started to try to add it here:
https://github.com/web-platform-tests/wpt/pull/22292</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384145</attachid>
            <date>2019-11-22 05:46:20 -0800</date>
            <delta_ts>2019-11-26 09:20:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191122144619.patch</filename>
            <type>text/plain</type>
            <size>8975</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwMTJjZTcxYWQ3ZWNkZTBj
NmU2NjdiNjI5YjU1MWI0ODU3NGI4NjguLjY3MjYwOThhOWM0MzhkNjRjYjI5MGFmZmYwM2U3MDVl
ZTc4ZTczZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMTEtMjIgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBz
dGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnJldHJpZXZlQ2FjaGVFbnRyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpBc3luY1JldmFs
aWRhdGlvbkNvbnRleHQ6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6QXN5bmNSZXZhbGlkYXRpb25Db250ZXh0Ojp+QXN5bmNS
ZXZhbGlkYXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNo
ZTo6cmV0cmlldmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpzdGFy
dEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OkNhY2hlOjpzcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyKToKKwogMjAxOS0xMS0xOCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgQXV0b21hdGlv
bjogc2Nyb2xsSW50b1ZpZXcgc2hvdWxkIGRvIG5vdGhpbmcgaWYgZWxlbWVudCBpcyB2aXNpYmxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZjM5YWJlMmRiNTNlMTA5NzgxMmQyYmVlMGE1
YjgyYWQwYTQwNWViNy4uODg3MmY1NTcxZjhlZDhmM2Y5MTQwOTFjODg0OWE3YTM0YTEyYjY3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjUsMTAgKzI1LDEyIEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiQXN5bmNSZXZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCisj
aW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1JlZ2lzdGVy
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCkBAIC04Niw2ICs4OCw3IEBAIGNs
YXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9S
RU1PVEVfVUkpCiAgICAgLCBwdWJsaWMgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNsaWVu
dAogI2VuZGlmCisgICAgLCBwdWJsaWMgTmV0d29ya0NhY2hlOjpBc3luY1JldmFsaWRhdGlvbkNv
bnRleHQKICAgICAsIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IGM2M2MwYTAyNWNiODdjMmIyNGFmMTlhMzFlNzFjZjI2MmVhNDc1NjcuLmI1MWE2
ODQyZWU4YWQ4M2RjYjc4YzRlNGE4OGMzMzg0YmEzZDc5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI0
MCw3ICsyNDAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVu
dHJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KLSAgICBtX2NhY2hlLT5yZXRyaWV2ZShyZXF1ZXN0LCBnbG9iYWxGcmFtZUlE
KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdCA9IFJlc291
cmNlUmVxdWVzdCB7IHJlcXVlc3QgfV0oYXV0byBlbnRyeSwgYXV0byBpbmZvKSBtdXRhYmxlIHsK
KyAgICBtX2NhY2hlLT5yZXRyaWV2ZShyZXF1ZXN0LCBnbG9iYWxGcmFtZUlEKCksICZtX2Nvbm5l
Y3Rpb24uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVz
dCA9IFJlc291cmNlUmVxdWVzdCB7IHJlcXVlc3QgfV0oYXV0byBlbnRyeSwgYXV0byBpbmZvKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCmluZGV4IDI3NWUwMGVlOGIwNjhjZjlmYmY1NDM2N2JjZTc2ODUxYjU4NDAzNjguLmY0NWZi
YWY2Zjc1ZmQ5ZjY2NTU4YTllNDJhZDNjYjM4MjE3ZmM5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTMxNiwxOCAr
MzE2LDIzIEBAIHN0YXRpYyBib29sIGlubGluZSBjYW5SZXF1ZXN0VXNlU3BlY3VsYXRpdmVSZXZh
bGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKLXZvaWQgQ2FjaGU6OnN0YXJ0
QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxF
bnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKK3ZvaWQgQXN5bmNS
ZXZhbGlkYXRpb25Db250ZXh0OjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoQ2FjaGUm
IGNhY2hlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5l
dHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwgY29u
c3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRh
dGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNS
ZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3Ro
aXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRpb24+KGNhY2hlLCBmcmFtZUlELCByZXF1ZXN0
LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCBy
ZXN1bHQpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5yZW1vdmUo
a2V5KTsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIEFz
eW5jIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQgJWQiLCBrZXku
aWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVzdWx0KSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogfQorCitBc3luY1JldmFsaWRhdGlvbkNvbnRleHQ6On5Bc3lu
Y1JldmFsaWRhdGlvbkNvbnRleHQoKQoreworICAgIC8vIGNhbmNlbCBhbGwgcmV2YWxpZGF0aW9u
cy4KK30KICNlbmRpZgogCi12b2lkIENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIFJldHJp
ZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQ2FjaGU6OnJl
dHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xv
YmFsRnJhbWVJRCYgZnJhbWVJRCwgQXN5bmNSZXZhbGlkYXRpb25Db250ZXh0KiBoYW5kbGVyLCBS
ZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKIApAQCAtMzY1LDcg
KzM3MCw3IEBAIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJCiAgICAgfQogI2VuZGlmCiAKLSAgICBt
X3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmZvID0gV1RGTW92ZShpbmZvKSwgc3RvcmFnZUtleSwg
bmV0d29ya1Byb2Nlc3MgPSBtYWtlUmVmKG5ldHdvcmtQcm9jZXNzKCkpLCBzZXNzaW9uSUQgPSBt
X3Nlc3Npb25JRCwgZnJhbWVJRF0oYXV0byByZWNvcmQsIGF1dG8gdGltaW5ncykgbXV0YWJsZSB7
CisgICAgbV9zdG9yYWdlLT5yZXRyaWV2ZShzdG9yYWdlS2V5LCBwcmlvcml0eSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaW5mbyA9IFdURk1vdmUoaW5mbyksIHN0b3Jh
Z2VLZXksIG5ldHdvcmtQcm9jZXNzID0gbWFrZVJlZihuZXR3b3JrUHJvY2VzcygpKSwgc2Vzc2lv
bklEID0gbV9zZXNzaW9uSUQsIGZyYW1lSUQsIGhhbmRsZXJdKGF1dG8gcmVjb3JkLCBhdXRvIHRp
bWluZ3MpIG11dGFibGUgewogICAgICAgICBpbmZvLnN0b3JhZ2VUaW1pbmdzID0gdGltaW5nczsK
IAogICAgICAgICBpZiAoIXJlY29yZCkgewpAQCAtMzg0LDcgKzM4OSw3IEBAIHZvaWQgQ2FjaGU6
OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
R2xvYmFsRnJhbWVJCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJ
REFUSU9OKQogICAgICAgICAgICAgYXV0byBlbnRyeUNvcHkgPSBtYWtlVW5pcXVlPEVudHJ5Pigq
ZW50cnkpOwogICAgICAgICAgICAgZW50cnlDb3B5LT5zZXROZWVkc1ZhbGlkYXRpb24odHJ1ZSk7
Ci0gICAgICAgICAgICBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQocmVxdWVzdCwgc3Rv
cmFnZUtleSwgV1RGTW92ZShlbnRyeUNvcHkpLCBmcmFtZUlEKTsKKyAgICAgICAgICAgIGhhbmRs
ZXItPnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCgqdGhpcywgcmVxdWVzdCwgc3RvcmFn
ZUtleSwgV1RGTW92ZShlbnRyeUNvcHkpLCBmcmFtZUlEKTsKICNlbmRpZgogICAgICAgICAgICAg
RkFMTFRIUk9VR0g7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDUzNTQwYWVkOGVjMDVkNTU2MjhhN2M2ZTM4
NGIzMDYyNDI5N2JjOTMuLjYzYzQwZWM3OTY2ZDhmYzE3MGI2Y2M4NTZjNWUyYjczMGIzODgwZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuaApAQCAtMTIzLDYgKzEyMywxNyBAQCBlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhf
dCB7CiAjZW5kaWYKIH07CiAKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uQ29udGV4dCB7CitwdWJs
aWM6CisgICAgQXN5bmNSZXZhbGlkYXRpb25Db250ZXh0KCkgPSBkZWZhdWx0OworICAgIH5Bc3lu
Y1JldmFsaWRhdGlvbkNvbnRleHQoKTsKKworICAgIHZvaWQgc3RhcnRBc3luY1JldmFsaWRhdGlv
bklmTmVlZGVkKENhY2hlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
S2V5Jiwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmLCBjb25zdCBHbG9iYWxGcmFtZUlEJik7CisK
K3ByaXZhdGU6CisgICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JldmFsaWRh
dGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKK307CisKIGNsYXNzIENhY2hlIDog
cHVibGljIFJlZkNvdW50ZWQ8Q2FjaGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPENh
Y2hlPiBvcGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlv
blNldDxDYWNoZU9wdGlvbj4sIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTE0MCw3ICsxNTEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIH07CiAgICAgdXNp
bmcgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiwgY29uc3QgUmV0cmlldmVJbmZvJik+OwotICAgIHZvaWQgcmV0cmlldmUoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgR2xvYmFsRnJhbWVJRCYsIFJldHJp
ZXZlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCByZXRyaWV2ZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBHbG9iYWxGcmFtZUlEJiwgQXN5bmNSZXZhbGlkYXRp
b25Db250ZXh0KiwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RW50cnk+IHN0b3JlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYmLCBGdW5jdGlvbjx2b2lkKE1hcHBlZEJvZHkmKT4mJiA9IG51bGxwdHIpOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxFbnRyeT4gc3RvcmVSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIE9wdGlvbmFsPFNlY29uZHM+IG1heEFn
ZUNhcCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiB1cGRhdGUoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgR2xvYmFsRnJhbWVJRCYsIGNvbnN0IEVudHJ5JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgdmFsaWRhdGluZ1Jlc3BvbnNlKTsKQEAgLTE2
OSw4ICsxODAsNiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxB
VElWRV9SRVZBTElEQVRJT04pCiAgICAgU3BlY3VsYXRpdmVMb2FkTWFuYWdlciogc3BlY3VsYXRp
dmVMb2FkTWFuYWdlcigpIHsgcmV0dXJuIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci5nZXQoKTsg
fQotCi0gICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1
ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCiAgICAgTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5n
ZXQoKTsgfQpAQCAtMTk3LDggKzIwNiw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE5FVFdPUktf
Q0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcj4gbV9sb3dQb3dlck1vZGVOb3RpZmllcjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U3BlY3VsYXRpdmVMb2FkTWFuYWdlcj4gbV9zcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyOwotCi0gICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JldmFsaWRh
dGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKICNlbmRpZgogCiAgICAgdW5zaWdu
ZWQgbV90cmF2ZXJzZUNvdW50IHsgMCB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384361</attachid>
            <date>2019-11-26 09:20:22 -0800</date>
            <delta_ts>2019-11-26 11:23:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191126182020.patch</filename>
            <type>text/plain</type>
            <size>11744</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUwZWY2YTQxZWNmMDFhNmY5
MmU1NjAzOTYwNjFhZmVmYmNhYTA4MTIuLjMwZDVkODNhMzRmYjRkY2FmZGMwNzNiOGVmMWQ3NzEw
YjhjNzFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTEtMjYgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBz
dGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkIGNvbnN0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkFzeW5jUmV2YWxpZGF0aW9uQ29udGV4dDo6fkFz
eW5jUmV2YWxpZGF0aW9uQ29udGV4dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6
cmV0cmlldmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpzdGFydEFz
eW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OkNhY2hlOjpzcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyKToKKwogMjAxOS0xMS0yNiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
VXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuMjcuMyByZWxlYXNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDNiNWZhNThjZjQ2Njc0ZTE3YTQ1YzI3YWYyNGY3
MTVmZDBhY2FlZmYuLjQ1NDQ2MDU1OTZkZTkwYzVkOTdjNTRiYmNiMDM5MWI2OWRmMjk5NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC04MCw2ICs4MCw3IEBACiAjZGVmaW5lIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKG1f
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRp
ZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC0xMDI1LDQgKzEwMjYsMTYgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZp
dHkoY29uc3QgTWVzc2EKICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5IHsgcG9ydCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChD
YWNoZSYgY2FjaGUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgTmV0d29ya0NhY2hlOjpLZXkmIGtleSwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmIGVudHJ5
LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlEKSBjb25zdAoreworI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBtX3BlbmRpbmdBc3luY1Jl
dmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
QXN5bmNSZXZhbGlkYXRpb24+KGNhY2hlLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5
KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAg
ICAgICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5yZW1vdmUoa2V5KTsKKyAgICAgICAg
ICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlv
biBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQgJWQiLCBrZXkuaWRlbnRpZmllcigpLnV0
ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVzdWx0KSk7CisgICAgICAgIH0pOworICAg
IH0pOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGYzOWFiZTJkYjUzZTEwOTc4MTJkMmJlZTBhNWI4MmFkMGE0MDVlYjcuLmNl
OGJmZjdlMWY1MzI4NjJkOWFmNGFjNWRhNGE3ZTlkNjg3OTUxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTI1LDEwICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkFzeW5jUmV2YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgi
CiAjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
YWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXNS
ZXBsaWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlci5oIgogI2luY2x1ZGUgIk5l
dHdvcmtSVENQcm92aWRlci5oIgpAQCAtODYsNiArODgsNyBAQCBjbGFzcyBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcwogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVNT1RFX1VJKQogICAgICwg
cHVibGljIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDbGllbnQKICNlbmRpZgorICAgICwg
cHVibGljIE5ldHdvcmtDYWNoZTo6QXN5bmNSZXZhbGlkYXRpb25Db250ZXh0CiAgICAgLCBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKQEAgLTE2Nyw2ICsxNzAsOCBAQCBwdWJs
aWM6CiAKICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyByZXR1
cm4gbV9zY2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBzdGFydEFzeW5jUmV2YWxp
ZGF0aW9uSWZOZWVkZWQoTmV0d29ya0NhY2hlOjpDYWNoZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5Jiwgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtDYWNoZTo6RW50cnk+JiYsIGNvbnN0IE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYp
IGNvbnN0IG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6
U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC0zNTIsNiArMzU3
LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXI+IG1fcHJvY2Vzc0VudGFuZ2xlZFBvcnRzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0
aW9uPHZvaWQoKT4+IG1fbWVzc2FnZUJhdGNoRGVsaXZlcnlDb21wbGV0aW9uSGFuZGxlcnM7CiAg
ICAgUmVmPE5ldHdvcmtTY2hlbWVSZWdpc3RyeT4gbV9zY2hlbWVSZWdpc3RyeTsKKworI2lmIEVO
QUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBtdXRhYmxl
IEhhc2hNYXA8TmV0d29ya0NhY2hlOjpLZXksIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6
OkFzeW5jUmV2YWxpZGF0aW9uPj4gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zOworI2VuZGlm
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA0MjA4NmEwMzZm
NGRmYTUyZjc5ZmJlOTgyZTM4OWNjOWI4ZThjNGQzLi44NDBjZGFjOGRlZDhjMDNlMDNkNzhkNGFk
YTNlNDg2ODg3Njc0OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9j
YWNoZS0+cmV0cmlldmUocmVxdWVzdCwgZ2xvYmFsRnJhbWVJRCgpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0
IH1dKGF1dG8gZW50cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CisgICAgbV9jYWNoZS0+cmV0cmll
dmUocmVxdWVzdCwgZ2xvYmFsRnJhbWVJRCgpLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCB7
IHJlcXVlc3QgfV0oYXV0byBlbnRyeSwgYXV0byBpbmZvKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCmluZGV4IDNkZDYw
OGQwZTA1M2JhODMyMTZkZTQ5NGUyMzFmMDQ3ZDI0NDMyZTQuLjUwNjkxZjg1OGRlM2U5YTA1MDE5
ZDU4NGNkZWRjNDMxNDJjOGE4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKQEAgLTQyLDYgKzQyLDEyIEBAIGNs
YXNzIFNwZWN1bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKK2NsYXNz
IEFzeW5jUmV2YWxpZGF0aW9uQ29udGV4dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+QXN5bmNS
ZXZhbGlkYXRpb25Db250ZXh0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXN5bmNSZXZh
bGlkYXRpb25JZk5lZWRlZChDYWNoZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IEtleSYsIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiwgY29uc3QgR2xvYmFsRnJhbWVJ
RCYpIGNvbnN0ID0gMDsKK307CisKIGNsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCAyNzVlMDBlZThiMDY4Y2Y5
ZmJmNTQzNjdiY2U3Njg1MWI1ODQwMzY4Li5hMWVmNWQ2NzA4ZTc3MzJlYTE5ZDE4NDAxZDNlMWRh
ODAxNTgzZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMTUsMTkgKzMxNSw3IEBAIHN0YXRpYyBib29sIGlubGlu
ZSBjYW5SZXF1ZXN0VXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikKLXZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRl
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtD
YWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwgY29uc3QgR2xv
YmFsRnJhbWVJRCYgZnJhbWVJRCkKLXsKLSAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMu
ZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlk
YXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtl
eV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKLSAgICAgICAgICAgIG1fcGVu
ZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5yZW1vdmUoa2V5KTsKLSAgICAgICAgICAgIExPRyhOZXR3
b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQg
Zm9yICclcycgd2l0aCByZXN1bHQgJWQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCks
IHN0YXRpY19jYXN0PGludD4ocmVzdWx0KSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotI2Vu
ZGlmCi0KLXZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgUmV0cmlldmVDb21wbGV0
aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBDYWNoZTo6cmV0cmlldmUoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlE
JiBmcmFtZUlELCBjb25zdCBBc3luY1JldmFsaWRhdGlvbkNvbnRleHQmIGhhbmRsZXIsIFJldHJp
ZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
cmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwogCkBAIC0zNjUsNyArMzUz
LDcgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fc3Rv
cmFnZS0+cmV0cmlldmUoc3RvcmFnZUtleSwgcHJpb3JpdHksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3QsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGluZm8gPSBXVEZNb3ZlKGluZm8pLCBzdG9yYWdlS2V5LCBuZXR3
b3JrUHJvY2VzcyA9IG1ha2VSZWYobmV0d29ya1Byb2Nlc3MoKSksIHNlc3Npb25JRCA9IG1fc2Vz
c2lvbklELCBmcmFtZUlEXShhdXRvIHJlY29yZCwgYXV0byB0aW1pbmdzKSBtdXRhYmxlIHsKKyAg
ICBtX3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmZvID0gV1RGTW92ZShpbmZvKSwgc3RvcmFnZUtl
eSwgbmV0d29ya1Byb2Nlc3MgPSBtYWtlUmVmKG5ldHdvcmtQcm9jZXNzKCkpLCBzZXNzaW9uSUQg
PSBtX3Nlc3Npb25JRCwgZnJhbWVJRCwgJmhhbmRsZXJdKGF1dG8gcmVjb3JkLCBhdXRvIHRpbWlu
Z3MpIG11dGFibGUgewogICAgICAgICBpbmZvLnN0b3JhZ2VUaW1pbmdzID0gdGltaW5nczsKIAog
ICAgICAgICBpZiAoIXJlY29yZCkgewpAQCAtMzg0LDcgKzM3Miw3IEBAIHZvaWQgQ2FjaGU6OnJl
dHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xv
YmFsRnJhbWVJCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFU
SU9OKQogICAgICAgICAgICAgYXV0byBlbnRyeUNvcHkgPSBtYWtlVW5pcXVlPEVudHJ5PigqZW50
cnkpOwogICAgICAgICAgICAgZW50cnlDb3B5LT5zZXROZWVkc1ZhbGlkYXRpb24odHJ1ZSk7Ci0g
ICAgICAgICAgICBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQocmVxdWVzdCwgc3RvcmFn
ZUtleSwgV1RGTW92ZShlbnRyeUNvcHkpLCBmcmFtZUlEKTsKKyAgICAgICAgICAgIGhhbmRsZXIu
c3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkKCp0aGlzLCByZXF1ZXN0LCBzdG9yYWdlS2V5
LCBXVEZNb3ZlKGVudHJ5Q29weSksIGZyYW1lSUQpOwogI2VuZGlmCiAgICAgICAgICAgICBGQUxM
VEhST1VHSDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggNTM1NDBhZWQ4ZWMwNWQ1NTYyOGE3YzZlMzg0YjMw
NjI0Mjk3YmM5My4uYjFlZjA2ODc2NTExYzBhMzc0ZWI3MGUxNTBiZjZiMzA5NjM2MDM4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBuYW1lc3BhY2UgTmV0
d29ya0NhY2hlIHsKIAotY2xhc3MgQXN5bmNSZXZhbGlkYXRpb247CitjbGFzcyBBc3luY1JldmFs
aWRhdGlvbkNvbnRleHQ7CiBjbGFzcyBDYWNoZTsKIGNsYXNzIFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI7CiAKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIH07CiAgICAgdXNpbmcgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciA9
IEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiwgY29uc3QgUmV0cmlldmVJbmZv
Jik+OwotICAgIHZvaWQgcmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAg
dm9pZCByZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiwgY29uc3QgQXN5bmNSZXZhbGlkYXRpb25Db250ZXh0JiwgUmV0cmlldmVDb21w
bGV0aW9uSGFuZGxlciYmKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+IHN0b3JlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBGdW5jdGlvbjx2b2lkKE1hcHBl
ZEJvZHkmKT4mJiA9IG51bGxwdHIpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4gc3RvcmVS
ZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVj
dFJlcXVlc3QsIE9wdGlvbmFsPFNlY29uZHM+IG1heEFnZUNhcCk7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiB1cGRhdGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
R2xvYmFsRnJhbWVJRCYsIGNvbnN0IEVudHJ5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYgdmFsaWRhdGluZ1Jlc3BvbnNlKTsKQEAgLTE2OSw4ICsxNjksNiBAQCBwdWJsaWM6CiAK
ICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCiAgICAg
U3BlY3VsYXRpdmVMb2FkTWFuYWdlciogc3BlY3VsYXRpdmVMb2FkTWFuYWdlcigpIHsgcmV0dXJu
IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci5nZXQoKTsgfQotCi0gICAgdm9pZCBzdGFydEFzeW5j
UmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEds
b2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQpAQCAtMTk3LDggKzE5NSw2
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJ
REFUSU9OKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmll
cj4gbV9sb3dQb3dlck1vZGVOb3RpZmllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlY3VsYXRp
dmVMb2FkTWFuYWdlcj4gbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOwotCi0gICAgSGFzaE1hcDxL
ZXksIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2
YWxpZGF0aW9uczsKICNlbmRpZgogCiAgICAgdW5zaWduZWQgbV90cmF2ZXJzZUNvdW50IHsgMCB9
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384367</attachid>
            <date>2019-11-26 11:23:15 -0800</date>
            <delta_ts>2019-12-03 04:38:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191126202314.patch</filename>
            <type>text/plain</type>
            <size>11412</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUwZWY2YTQxZWNmMDFhNmY5
MmU1NjAzOTYwNjFhZmVmYmNhYTA4MTIuLjRlZDQ3NWJmMjI3ODM0ZTFiNDEzMGU4MDEwZGU2NzBj
NWI0YWNlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMTEtMjYgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBz
dGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkIGNvbnN0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpyZXRyaWV2ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6QXN5bmNSZXZhbGlkYXRpb25Db250ZXh0
Ojp+QXN5bmNSZXZhbGlkYXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpDYWNoZTo6c3BlY3VsYXRpdmVMb2FkTWFuYWdlcik6CisKIDIwMTktMTEtMjYgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjI3LjMgcmVsZWFzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAzYjVmYTU4Y2Y0NjY3NGUxN2E0NWMyN2Fm
MjRmNzE1ZmQwYWNhZWZmLi40NTQ0NjA1NTk2ZGU5MGM1ZDk3YzU0YmJjYjAzOTFiNjlkZjI5OTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtODAsNiArODAsNyBAQAogI2RlZmlu
ZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19J
RihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0g
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19f
KQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGU7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNz
JiBuZXR3b3JrUHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTAyNSw0ICsxMDI2LDE2IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KGNvbnN0IE1lc3NhCiAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpDaGVja1Byb2Nlc3NMb2NhbFBvcnRG
b3JBY3Rpdml0eSB7IHBvcnQgfSwgV1RGTW92ZShjYWxsYmFjayksIDApOwogfQogCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVk
ZWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBl
bnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCisgICAgbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLmVuc3VyZShrZXksIFsmXSB7CisgICAgICAgIHJldHVybiBtYWtlVW5p
cXVlPEFzeW5jUmV2YWxpZGF0aW9uPihjYWNoZSwgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92ZShl
bnRyeSksIFt0aGlzLCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7Cisg
ICAgICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtleSk7CisgICAg
ICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBBc3luYyByZXZhbGlk
YXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50aWZpZXIo
KS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOworICAgICAgICB9KTsK
KyAgICB9KTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAppbmRleCBmMzlhYmUyZGI1M2UxMDk3ODEyZDJiZWUwYTViODJhZDBhNDA1ZWI3
Li5jZThiZmY3ZTFmNTMyODYyZDlhZjRhYzVkYTRhN2U5ZDY4Nzk1MTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCkBAIC0yNSwxMCArMjUsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJBc3luY1JldmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJ
RC5oIgogI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKKyNpbmNsdWRlICJOZXR3
b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXIuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKQEAgLTg2LDYgKzg4LDcgQEAgY2xhc3MgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkKICAg
ICAsIHB1YmxpYyBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50CiAjZW5kaWYKKyAg
ICAsIHB1YmxpYyBOZXR3b3JrQ2FjaGU6OkFzeW5jUmV2YWxpZGF0aW9uQ29udGV4dAogICAgICwg
SVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgogICAgIHVzaW5nIFJlZ2lzdHJhYmxl
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBAIC0xNjcsNiArMTcwLDggQEAg
cHVibGljOgogCiAgICAgTmV0d29ya1NjaGVtZVJlZ2lzdHJ5JiBzY2hlbWVSZWdpc3RyeSgpIHsg
cmV0dXJuIG1fc2NoZW1lUmVnaXN0cnkuZ2V0KCk7IH0KIAorICAgIHZvaWQgc3RhcnRBc3luY1Jl
dmFsaWRhdGlvbklmTmVlZGVkKE5ldHdvcmtDYWNoZTo6Q2FjaGUmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBOZXR3b3JrQ2FjaGU6OktleSYsIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiYmLCBjb25zdCBOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1l
SUQmKSBjb25zdCBvdmVycmlkZTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQ
QUw6OlNlc3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtMzUyLDYg
KzM1NywxMCBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyPiBtX3Byb2Nlc3NFbnRhbmdsZWRQb3J0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBG
dW5jdGlvbjx2b2lkKCk+PiBtX21lc3NhZ2VCYXRjaERlbGl2ZXJ5Q29tcGxldGlvbkhhbmRsZXJz
OwogICAgIFJlZjxOZXR3b3JrU2NoZW1lUmVnaXN0cnk+IG1fc2NoZW1lUmVnaXN0cnk7CisKKyNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCisgICAgbXV0
YWJsZSBIYXNoTWFwPE5ldHdvcmtDYWNoZTo6S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0Nh
Y2hlOjpBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNDIwODZh
MDM2ZjRkZmE1MmY3OWZiZTk4MmUzODljYzliOGU4YzRkMy4uODQwY2RhYzhkZWQ4YzAzZTAzZDc4
ZDRhZGEzZTQ4Njg4NzY3NDk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAg
IG1fY2FjaGUtPnJldHJpZXZlKHJlcXVlc3QsIGdsb2JhbEZyYW1lSUQoKSwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgcmVx
dWVzdCB9XShhdXRvIGVudHJ5LCBhdXRvIGluZm8pIG11dGFibGUgeworICAgIG1fY2FjaGUtPnJl
dHJpZXZlKHJlcXVlc3QsIGdsb2JhbEZyYW1lSUQoKSwgbV9jb25uZWN0aW9uLmdldCgpLCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVl
c3QgeyByZXF1ZXN0IH1dKGF1dG8gZW50cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCAyNzVlMDBl
ZThiMDY4Y2Y5ZmJmNTQzNjdiY2U3Njg1MWI1ODQwMzY4Li5hMWVmNWQ2NzA4ZTc3MzJlYTE5ZDE4
NDAxZDNlMWRhODAxNTgzZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMTUsMTkgKzMxNSw3IEBAIHN0YXRpYyBi
b29sIGlubGluZSBjYW5SZXF1ZXN0VXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24oY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikKLXZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRp
b25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKLXsKLSAgICBtX3BlbmRpbmdBc3luY1JldmFs
aWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5
bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwg
W3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKLSAgICAgICAg
ICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5yZW1vdmUoa2V5KTsKLSAgICAgICAgICAg
IExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlvbiBj
b21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQgJWQiLCBrZXkuaWRlbnRpZmllcigpLnV0Zjgo
KS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVzdWx0KSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotfQotI2VuZGlmCi0KLXZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgUmV0cmll
dmVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBDYWNoZTo6cmV0
cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9i
YWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBBc3luY1JldmFsaWRhdGlvbkNvbnRleHQmIGhhbmRs
ZXIsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQocmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwogCkBAIC0z
NjUsNyArMzUzLDcgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUkKICAgICB9CiAjZW5kaWYKIAot
ICAgIG1fc3RvcmFnZS0+cmV0cmlldmUoc3RvcmFnZUtleSwgcHJpb3JpdHksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3QsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGluZm8gPSBXVEZNb3ZlKGluZm8pLCBzdG9yYWdl
S2V5LCBuZXR3b3JrUHJvY2VzcyA9IG1ha2VSZWYobmV0d29ya1Byb2Nlc3MoKSksIHNlc3Npb25J
RCA9IG1fc2Vzc2lvbklELCBmcmFtZUlEXShhdXRvIHJlY29yZCwgYXV0byB0aW1pbmdzKSBtdXRh
YmxlIHsKKyAgICBtX3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0LCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmZvID0gV1RGTW92ZShpbmZvKSwg
c3RvcmFnZUtleSwgbmV0d29ya1Byb2Nlc3MgPSBtYWtlUmVmKG5ldHdvcmtQcm9jZXNzKCkpLCBz
ZXNzaW9uSUQgPSBtX3Nlc3Npb25JRCwgZnJhbWVJRCwgJmhhbmRsZXJdKGF1dG8gcmVjb3JkLCBh
dXRvIHRpbWluZ3MpIG11dGFibGUgewogICAgICAgICBpbmZvLnN0b3JhZ2VUaW1pbmdzID0gdGlt
aW5nczsKIAogICAgICAgICBpZiAoIXJlY29yZCkgewpAQCAtMzg0LDcgKzM3Miw3IEBAIHZvaWQg
Q2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgR2xvYmFsRnJhbWVJCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVf
UkVWQUxJREFUSU9OKQogICAgICAgICAgICAgYXV0byBlbnRyeUNvcHkgPSBtYWtlVW5pcXVlPEVu
dHJ5PigqZW50cnkpOwogICAgICAgICAgICAgZW50cnlDb3B5LT5zZXROZWVkc1ZhbGlkYXRpb24o
dHJ1ZSk7Ci0gICAgICAgICAgICBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQocmVxdWVz
dCwgc3RvcmFnZUtleSwgV1RGTW92ZShlbnRyeUNvcHkpLCBmcmFtZUlEKTsKKyAgICAgICAgICAg
IGhhbmRsZXIuc3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkKCp0aGlzLCByZXF1ZXN0LCBz
dG9yYWdlS2V5LCBXVEZNb3ZlKGVudHJ5Q29weSksIGZyYW1lSUQpOwogI2VuZGlmCiAgICAgICAg
ICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggNTM1NDBhZWQ4ZWMwNWQ1NTYyOGE3
YzZlMzg0YjMwNjI0Mjk3YmM5My4uNGMzOGIyZDUzNGM5MmY2Njc1ODM4OWU0MTIyYmM1ZmNmYWIx
NDg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5oCkBAIC01MCw3ICs1MCw2IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBuYW1l
c3BhY2UgTmV0d29ya0NhY2hlIHsKIAotY2xhc3MgQXN5bmNSZXZhbGlkYXRpb247CiBjbGFzcyBD
YWNoZTsKIGNsYXNzIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI7CiAKQEAgLTEyMyw2ICsxMjIsMTIg
QEAgZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogI2VuZGlmCiB9OwogCitjbGFz
cyBBc3luY1JldmFsaWRhdGlvbkNvbnRleHQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkFzeW5j
UmV2YWxpZGF0aW9uQ29udGV4dCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzeW5jUmV2
YWxpZGF0aW9uSWZOZWVkZWQoQ2FjaGUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1l
SUQmKSBjb25zdCA9IDA7Cit9OworCiBjbGFzcyBDYWNoZSA6IHB1YmxpYyBSZWZDb3VudGVkPENh
Y2hlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxDYWNoZT4gb3BlbihOZXR3b3JrUHJv
Y2VzcyYsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8Q2FjaGVPcHRpb24+LCBQ
QUw6OlNlc3Npb25JRCk7CkBAIC0xNDAsNyArMTQ1LDcgQEAgcHVibGljOgogICAgICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICB9OwogICAgIHVzaW5nIFJldHJpZXZlQ29tcGxldGlv
bkhhbmRsZXIgPSBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4sIGNvbnN0IFJl
dHJpZXZlSW5mbyYpPjsKLSAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVy
JiYpOworICAgIHZvaWQgcmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYsIGNvbnN0IEFzeW5jUmV2YWxpZGF0aW9uQ29udGV4dCYsIFJl
dHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiBz
dG9yZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgRnVuY3Rpb248
dm9pZChNYXBwZWRCb2R5Jik+JiYgPSBudWxscHRyKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RW50
cnk+IHN0b3JlUmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVkaXJlY3RSZXF1ZXN0LCBPcHRpb25hbDxTZWNvbmRzPiBtYXhBZ2VDYXApOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxFbnRyeT4gdXBkYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBFbnRyeSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHZhbGlkYXRpbmdSZXNwb25zZSk7CkBAIC0xNjksOCArMTc0LDYgQEAg
cHVibGljOgogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFU
SU9OKQogICAgIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXIqIHNwZWN1bGF0aXZlTG9hZE1hbmFnZXIo
KSB7IHJldHVybiBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIuZ2V0KCk7IH0KLQotICAgIHZvaWQg
c3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5Jiwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYm
LCBjb25zdCBHbG9iYWxGcmFtZUlEJik7CiAjZW5kaWYKIAogICAgIE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0KQEAgLTE5
Nyw4ICsyMDAsNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TG93UG93ZXJN
b2RlTm90aWZpZXI+IG1fbG93UG93ZXJNb2RlTm90aWZpZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI+IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlcjsKLQotICAg
IEhhc2hNYXA8S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRp
bmdBc3luY1JldmFsaWRhdGlvbnM7CiAjZW5kaWYKIAogICAgIHVuc2lnbmVkIG1fdHJhdmVyc2VD
b3VudCB7IDAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384705</attachid>
            <date>2019-12-03 04:38:42 -0800</date>
            <delta_ts>2019-12-03 06:15:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191203133841.patch</filename>
            <type>text/plain</type>
            <size>15459</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzOGQzZTEzODZjYzlm
MmYxOTc4NDhjMTZkYWZkOTJlZTI1NWIxOS4uNGNiODI2OTcwNzA3NmI3NWM3ZjAyZmM4NDJhOTRj
MTU2YzAzNjFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTAzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgcGFnZSBjb250ZXh0IHJlbW92YWwKKyAgICAgICAgYW5kIGNhbGwg
aXQgd2hlbiB0aGUgbWFpbiBmcmFtZSBzdG9wcyBhbGwgbG9hZGVycy4KKworICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Rv
cEFsbExvYWRlcnMpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorCiAyMDE5
LTExLTI2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtjc3MtZ3JpZF0gQXZvaWQgc2VyaWFsaXppbmcgW10gaW4gZ3JpZC10ZW1wbGF0ZS0qIHNw
ZWNpZmllZCB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTBlZjZhNDFlY2YwMWE2ZjkyZTU2MDM5NjA2MWFm
ZWZiY2FhMDgxMi4uZjBiYWVjMWRmN2RmNDFlZTNkYzBjMjc0ZDIxMDgxMDEwMTMzMDgxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0xMi0wMyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJl
dmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbWVzc2FnZSBmb3IgcGFnZSBjb250ZXh0IHJlbW92YWwuIFdo
ZW4gdGhlIG1lc3NhZ2UgaGFwcGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3
b3JrIGNhY2hlIHRvIHJlbW92ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRp
b25zIGZvciB0aGF0IHBhZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpwYWdlQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnBhZ2VDb250ZXh0UmVtb3ZlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMTktMTEtMjYgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjI3LjMgcmVsZWFzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZwppbmRleCA2NWJjZjNhN2EwYmM4N2E5MzU3ODEyYTNjODI2ODYyZGM2NjUz
MzllLi42MzIwZjRhMmRiZGFmOTI1MzQ2YWRiYTQzZWUxMTIzMGU3MDA0NGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEyLTAzICBSb2IgQnVpcyAgPHJidWlz
QGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hp
bGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGVtcHR5IHN0dWIgZm9yIG5ldyBtZXRob2Qgb24g
TG9hZGVyU3RyYXRlZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdl
Q29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oOgorCiAyMDE5LTEwLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgbW9yZSBmZWF0dXJlcyBpbiBNYWMgQ01h
a2UgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDliNDIxMWI0
MjEyYjllYmM2ZThmYjZmYmRiYzliNmI2NGY3ZmM2NmIuLjY5OGYxNjg5ZjE0MTk3ZWZmNzI0ODEw
ZDBiMmEzY2ZkNGQxMzNlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMTg0MSw2ICsxODQxLDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xl
YXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICBpZiAobV9k
b2N1bWVudExvYWRlcikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsK
IAorICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS5wYWdlKCkpCisgICAg
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wYWdlQ29udGV4dFJl
bW92ZWQoKnByb3RlY3QtPnBhZ2UoKSk7CisKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJh
bGxBbGxMb2FkZXJzOiBDbGVhcmluZyBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIgKGZyYW1l
ID0gJXAsIG1haW4gPSAlZCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI9JXApIiwgJm1fZnJh
bWUsIG1fZnJhbWUuaXNNYWluRnJhbWUoKSwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdl
dCgpKTsKICAgICBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKG51bGxwdHIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDA2NDRmZWM1MDllNjBmN2E0Y2Y1
OWEzNTJmMzIzMzVjMmQxNjRkOTkuLmI2ZTdiYjJjZWY5OTg1MTgyOWIwNmNlYWY3OWJmMjUzNzMw
MTcyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OSw2ICs1
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwgQ2Fj
aGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRp
b25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYp
PiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJh
bWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0IEhU
VFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rvcjxj
aGFyPiYgZGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChQYWdl
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlQ29udGV4dFJlbW92ZWQoUGFnZSYpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBib29sKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDNiNWZhNThjZjQ2Njc0ZTE3YTQ1YzI3YWYy
NGY3MTVmZDBhY2FlZmYuLjQwYjJlZjViY2VlNjk1YjcyYzIyNjNiN2MwYTA3MTdjYWI0YzM3NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00OTYsNiArNDk2LDE1IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCkKICAgICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQ
YWdlKHdlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnBhZ2VDb250ZXh0UmVtb3ZlZChQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCit7CisgICAgZnBy
aW50ZihzdGRlcnIsICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUNvbnRleHRS
ZW1vdmVkICVsbHVcbiIsIHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKKyAgICBpZiAoYXV0byogc2Vz
c2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKSB7Cisg
ICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IHNlc3Npb24tPmNhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+cGFnZUNvbnRleHRSZW1vdmVkKHdlYlBhZ2VJRCk7CisgICAgfQorfQorCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhv
c3RuYW1lKQogewogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnByZWZldGNoRE5TKGhvc3RuYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBmMzlhYmUyZGI1M2UxMDk3ODEyZDJiZWUwYTVi
ODJhZDBhNDA1ZWI3Li5mZjE2MGNlNTBhOGU1MzcyYThhOTJiMWZiYjFlNzQyN2JiNGYzNjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xOTIsNiArMTkyLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAg
dm9pZCBwYWdlQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNv
bnN0IFVSTCYgcmVkaXJlY3RVUkwpOwogICAgIHZvaWQgc3RhcnREb3dubG9hZChEb3dubG9hZElE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3Rl
ZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4YTdj
MDQxN2YxODMyYzI1YWEzMDg1NzE0MDQ2ZDRmYjE0NWYwMmNkLi4xZmNhNWExYzBjYTk4Nzk0YjNm
YTU0OGFjYmY1ZGE0NzczNDc4OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIExvYWRQaW5nKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykKICAgICBS
ZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAg
IFBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKKyAg
ICBQYWdlQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQog
ICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFtZSkKICAgICBQcmVjb25uZWN0VG8odWludDY0
X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDEzZmNlMmU3YzU5YzRhNDQyM2ZhZjcyYTYz
NWM5YzlkZTQ5YTRlMWUuLmNmZTVlMjdjODAyOWI4NzBhYzM5ZGFmNjI3YzIzMDJkY2Q3ZWUyNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggMjc1ZTAwZWU4YjA2OGNmOWZiZjU0MzY3YmNl
NzY4NTFiNTg0MDM2OC4uNDg4Zjg5NmFjMjJiMWUxYzc1ZDQxY2FjMDg2MmZiZWFhYmIxNGE3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcApAQCAtMzE5LDE0ICszMTksMjcgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVl
c3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZv
aWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0
ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJ
RCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsK
LSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFt
ZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRp
b246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZh
bGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMs
IGZyYW1lSUQsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKICAgICAg
ICAgICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5yZW1vdmUoa2V5KTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIGtleXMgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5nZXQo
ZnJhbWVJRC53ZWJQYWdlSUQpKQorICAgICAgICAgICAgICAgIGtleXMtPnJlbW92ZUZpcnN0KGtl
eSk7CiAgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBBc3lu
YyByZXZhbGlkYXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5Lmlk
ZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAg
ICAgICB9KTsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRh
dGlvbkJ5UGFnZS5lbnN1cmUoZnJhbWVJRC53ZWJQYWdlSUQsIFtdIHsKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlPFZlY3RvcjxLZXk+PigpOworICAgICAgICB9KTsKKyAgICAgICAgYWRk
UmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKGtleSk7CiAgICAgfSk7CiB9CiAjZW5kaWYK
IAordm9pZCBDYWNoZTo6cGFnZUNvbnRleHRSZW1vdmVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCkKK3sKKyNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pCisgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2UucmVtb3ZlKHdl
YlBhZ2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlE
LCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDUz
NTQwYWVkOGVjMDVkNTU2MjhhN2M2ZTM4NGIzMDYyNDI5N2JjOTMuLjliMTEyYzM1MmYwMTE4YWFj
ZjM5Y2YzNTc4Yzc3YTEyNzlkYzI5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtMTczLDYgKzE3Myw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBOZXR3b3JrQ2FjaGU6OktleSYsIHN0ZDo6dW5pcXVlX3B0
cjxFbnRyeT4mJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHBh
Z2VDb250ZXh0UmVtb3ZlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisKICAgICBOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzLmdldCgp
OyB9CiAgICAgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Vzc2lvbklEOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KCkgY29u
c3QgeyByZXR1cm4gbV9zdG9yYWdlRGlyZWN0b3J5OyB9CkBAIC0xOTksNiArMjAxLDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlY3VsYXRpdmVMb2FkTWFuYWdlcj4gbV9zcGVj
dWxhdGl2ZUxvYWRNYW5hZ2VyOwogCiAgICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5pcXVlX3B0cjxB
c3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEtleT4+
PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZTsKICNlbmRpZgogCiAgICAgdW5zaWdu
ZWQgbV90cmF2ZXJzZUNvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDUwNmEyZjI2MWU5ZWI3
NDY3MjY3OGZiYzc5MmViYzFiYmFlZTQyYjYuLjRkODgxYjdhMzhjNDI4OTAwMTAzNGQwOGM1OTg0
MWY2ZjRjMGIzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTU4MSw2ICs1ODEsMTEgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYgcGFnZSkKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBhZ2VM
b2FkQ29tcGxldGVkKFdlYlBhZ2U6OmZyb21Db3JlUGFnZShwYWdlKS5pZGVudGlmaWVyKCkpLCAw
KTsKIH0KIAordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cGFnZUNvbnRleHRSZW1vdmVkKFBhZ2Um
IHBhZ2UpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQYWdlQ29udGV4dFJlbW92ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdl
KHBhZ2UpLmlkZW50aWZpZXIoKSksIDApOworfQorCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVM
b2FkSWRlbnRpZmllcigpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmgKaW5kZXggYjI0NzhhYjUwZDE0MDA5ZGI0NWM2MjkxN2I5Yzc0OGE1NWExYWIyYy4uNDcz
MTY0N2NiNGRiN2Q0Y2I2NWM4Y2MwZDVmOTljODhkZTIxMmZhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC01Miw2
ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYs
IFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAgICAg
dm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgdW5z
aWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4m
IGRhdGEpIGZpbmFsOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZSYp
IGZpbmFsOworICAgIHZvaWQgcGFnZUNvbnRleHRSZW1vdmVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5h
bDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAg
ICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYmQwY2EzNmY4YWRiNmM2
NmJmYTAzN2IwNTE1OWJhNDVjYjUwYzUyOC4uMzQ5YmE2ZTFkZWNjZjAwZTEyZWIwZjk2MmI5ZjAw
Mjg0Mzg3MGRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTE1LDYgKzEx
NSwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQo
UGFnZSYpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdlQ29udGV4
dFJlbW92ZWQoUGFnZSYpCit7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpz
Y2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxXZWJD
b3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggOGVjOGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2ZmRi
NTI1YWQ2Yjg0ZC4uODlkOWU3NWIxNDk4YzZkZDZhOTc5NjFmNjhkMmY1YzQ4YjkyZjdmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJl
c291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29u
c3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVj
dG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQ
YWdlJikgZmluYWw7CisgICAgdm9pZCBwYWdlQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZSYp
IGZpbmFsOwogCiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKSBmaW5h
bDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXImLCBi
b29sKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384711</attachid>
            <date>2019-12-03 06:15:12 -0800</date>
            <delta_ts>2019-12-13 01:51:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191203151510.patch</filename>
            <type>text/plain</type>
            <size>15466</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzOGQzZTEzODZjYzlm
MmYxOTc4NDhjMTZkYWZkOTJlZTI1NWIxOS4uNGNiODI2OTcwNzA3NmI3NWM3ZjAyZmM4NDJhOTRj
MTU2YzAzNjFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTAzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgcGFnZSBjb250ZXh0IHJlbW92YWwKKyAgICAgICAgYW5kIGNhbGwg
aXQgd2hlbiB0aGUgbWFpbiBmcmFtZSBzdG9wcyBhbGwgbG9hZGVycy4KKworICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Rv
cEFsbExvYWRlcnMpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorCiAyMDE5
LTExLTI2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtjc3MtZ3JpZF0gQXZvaWQgc2VyaWFsaXppbmcgW10gaW4gZ3JpZC10ZW1wbGF0ZS0qIHNw
ZWNpZmllZCB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTBlZjZhNDFlY2YwMWE2ZjkyZTU2MDM5NjA2MWFm
ZWZiY2FhMDgxMi4uZjBiYWVjMWRmN2RmNDFlZTNkYzBjMjc0ZDIxMDgxMDEwMTMzMDgxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0xMi0wMyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJl
dmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbWVzc2FnZSBmb3IgcGFnZSBjb250ZXh0IHJlbW92YWwuIFdo
ZW4gdGhlIG1lc3NhZ2UgaGFwcGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3
b3JrIGNhY2hlIHRvIHJlbW92ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRp
b25zIGZvciB0aGF0IHBhZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpwYWdlQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnBhZ2VDb250ZXh0UmVtb3ZlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMTktMTEtMjYgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjI3LjMgcmVsZWFzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZwppbmRleCA2NWJjZjNhN2EwYmM4N2E5MzU3ODEyYTNjODI2ODYyZGM2NjUz
MzllLi42MzIwZjRhMmRiZGFmOTI1MzQ2YWRiYTQzZWUxMTIzMGU3MDA0NGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEyLTAzICBSb2IgQnVpcyAgPHJidWlz
QGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hp
bGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGVtcHR5IHN0dWIgZm9yIG5ldyBtZXRob2Qgb24g
TG9hZGVyU3RyYXRlZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdl
Q29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oOgorCiAyMDE5LTEwLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgbW9yZSBmZWF0dXJlcyBpbiBNYWMgQ01h
a2UgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDliNDIxMWI0
MjEyYjllYmM2ZThmYjZmYmRiYzliNmI2NGY3ZmM2NmIuLmE5MTVlNWNhZTM1ZTgxM2JjMjY1OGQ5
YzkwNjIwNDdhYTQ2ZTlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMTg0MCw2ICsxODQwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xl
YXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICAgICAgbV9w
cm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogICAgIGlmIChtX2RvY3Vt
ZW50TG9hZGVyKQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOworICAg
IGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUu
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkpCisgICAg
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wYWdlQ29udGV4dFJl
bW92ZWQoKm1fZnJhbWUucGFnZSgpKTsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFs
bEFsbExvYWRlcnM6IENsZWFyaW5nIHByb3Zpc2lvbmFsIGRvY3VtZW50IGxvYWRlciAoZnJhbWUg
PSAlcCwgbWFpbiA9ICVkIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcj0lcCkiLCAmbV9mcmFt
ZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpLCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIuZ2V0
KCkpOwogICAgIHNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIobnVsbHB0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDA2NDRmZWM1MDllNjBmN2E0Y2Y1OWEz
NTJmMzIzMzVjMmQxNjRkOTkuLmI2ZTdiYjJjZWY5OTg1MTgyOWIwNmNlYWY3OWJmMjUzNzMwMTcy
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OSw2ICs1OSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwgQ2FjaGVk
UmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVM
b2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0IEhUVFBI
ZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFy
PiYgZGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChQYWdlJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlQ29udGV4dFJlbW92ZWQoUGFnZSYpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBib29sKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDNiNWZhNThjZjQ2Njc0ZTE3YTQ1YzI3YWYyNGY3
MTVmZDBhY2FlZmYuLjgzNzc2OGNlMWZkNzZjZjA1YmE5NjMzYTRkOTExYmUzMDgyY2U3NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00OTYsNiArNDk2LDE0IEBAIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2VJZGVudGlm
aWVyIHdlYlBhZ2VJRCkKICAgICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdl
KHdlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBh
Z2VDb250ZXh0UmVtb3ZlZChQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCit7CisgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgp
KSkgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAg
ICAgICAgY2FjaGUtPnBhZ2VDb250ZXh0UmVtb3ZlZCh3ZWJQYWdlSUQpOworICAgIH0KK30KKwog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3Ry
aW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVmZXRjaEROUyhob3N0
bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZjM5YWJlMmRiNTNlMTA5NzgxMmQy
YmVlMGE1YjgyYWQwYTQwNWViNy4uZmYxNjBjZTUwYThlNTM3MmE4YTkyYjFmYmIxZTc0MjdiYjRm
MzY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OworICAgIHZvaWQgcGFnZUNvbnRleHRSZW1vdmVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoRG93
bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggOGE3YzA0MTdmMTgzMmMyNWFhMzA4NTcxNDA0NmQ0ZmIxNDVmMDJjZC4uMWZjYTVhMWMwY2E5
ODc5NGIzZmE1NDhhY2JmNWRhNDc3MzQ3ODhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2FkUGluZyhXZWJL
aXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMp
CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
cikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQpCisgICAgUGFnZUNvbnRleHRSZW1vdmVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCkKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAgICAgUHJlY29ubmVjdFRv
KHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxM2ZjZTJlN2M1OWM0YTQ0MjNm
YWY3MmE2MzVjOWM5ZGU0OWE0ZTFlLi5jZmU1ZTI3YzgwMjliODcwYWMzOWRhZjYyN2MyMzAyZGNk
N2VlMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IDI3NWUwMGVlOGIwNjhjZjlmYmY1
NDM2N2JjZTc2ODUxYjU4NDAzNjguLjQ4OGY4OTZhYzIyYjFlMWM3NWQ0MWNhYzA4NjJmYmVhYWJi
MTRhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKQEAgLTMxOSwxNCArMzE5LDI3IEBAIHN0YXRpYyBib29sIGlubGluZSBj
YW5SZXF1ZXN0VXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSCiB2b2lkIENhY2hlOjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBOZXR3b3JrQ2FjaGU6OktleSYg
a2V5LCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYgZW50cnksIGNvbnN0IEdsb2JhbEZyYW1lSUQm
IGZyYW1lSUQpCiB7CiAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLmVuc3VyZShrZXks
IFsmXSB7Ci0gICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhp
cywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIFt0aGlzLCBrZXldKEFzeW5jUmV2
YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEFz
eW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92ZShlbnRyeSks
IFt0aGlzLCBmcmFtZUlELCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7
CiAgICAgICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtleSk7Cisg
ICAgICAgICAgICBpZiAoYXV0byBrZXlzID0gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBh
Z2UuZ2V0KGZyYW1lSUQud2ViUGFnZUlEKSkKKyAgICAgICAgICAgICAgICBrZXlzLT5yZW1vdmVG
aXJzdChrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vz
cykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRoIHJlc3VsdCAlZCIs
IGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQp
KTsKICAgICAgICAgfSk7CisgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9wZW5kaW5nQXN5bmNS
ZXZhbGlkYXRpb25CeVBhZ2UuZW5zdXJlKGZyYW1lSUQud2ViUGFnZUlELCBbXSB7CisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuaXF1ZTxWZWN0b3I8S2V5Pj4oKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZChrZXkpOwogICAgIH0pOwogfQog
I2VuZGlmCiAKK3ZvaWQgQ2FjaGU6OnBhZ2VDb250ZXh0UmVtb3ZlZChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQpCit7CisjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKQorICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnJl
bW92ZSh3ZWJQYWdlSUQpOworI2VuZGlmCit9CisKIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYg
ZnJhbWVJRCwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApp
bmRleCA1MzU0MGFlZDhlYzA1ZDU1NjI4YTdjNmUzODRiMzA2MjQyOTdiYzkzLi45YjExMmMzNTJm
MDExOGFhY2YzOWNmMzU3OGM3N2ExMjc5ZGMyOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVu
aXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAg
dm9pZCBwYWdlQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworCiAgICAg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vz
cy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZURpcmVjdG9yeTsgfQpAQCAtMTk5LDYgKzIwMSw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI+
IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlcjsKIAogICAgIEhhc2hNYXA8S2V5LCBzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnM7Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFZlY3Rv
cjxLZXk+Pj4gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2U7CiAjZW5kaWYKIAogICAg
IHVuc2lnbmVkIG1fdHJhdmVyc2VDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA1MDZhMmYy
NjFlOWViNzQ2NzI2NzhmYmM3OTJlYmMxYmJhZWU0MmI2Li40ZDg4MWI3YTM4YzQyODkwMDEwMzRk
MDhjNTk4NDFmNmY0YzBiM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC01ODEsNiArNTgxLDExIEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmIHBhZ2UpCiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQYWdlTG9hZENvbXBsZXRlZChXZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSkuaWRlbnRpZmll
cigpKSwgMCk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VDb250ZXh0UmVtb3Zl
ZChQYWdlJiBwYWdlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUNvbnRleHRSZW1vdmVkKFdlYlBhZ2U6OmZyb21D
b3JlUGFnZShwYWdlKS5pZGVudGlmaWVyKCkpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVy
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5oCmluZGV4IGIyNDc4YWI1MGQxNDAwOWRiNDVjNjI5MTdiOWM3NDhhNTVhMWFi
MmMuLjQ3MzE2NDdjYjRkYjdkNGNiNjVjOGNjMGQ1Zjk5Yzg4ZGUyMTJmYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApA
QCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6
RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFs
OwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRl
ciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9y
PGNoYXI+JiBkYXRhKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6
OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VDb250ZXh0UmVtb3ZlZChXZWJDb3JlOjpQYWdl
JikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZp
bmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYs
IGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGJkMGNhMzZm
OGFkYjZjNjZiZmEwMzdiMDUxNTliYTQ1Y2I1MGM1MjguLjM0OWJhNmUxZGVjY2YwMGUxMmViMGY5
NjJiOWYwMDI4NDM4NzBkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTEx
NSw2ICsxMTUsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29t
cGxldGVkKFBhZ2UmKQogewogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFn
ZUNvbnRleHRSZW1vdmVkKFBhZ2UmKQoreworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXJDbGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXI+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyOjpjcmVhdGUoZnJhbWUsIGNsaWVudCwgV1RGTW92ZShyZXF1ZXN0KSwgW3Ro
aXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChSZWZQ
dHI8V2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+JiYgbG9hZGVyKSBtdXRhYmxl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDhlYzhhNDk0YmNhMmIwZDU3MTM1NWEz
YzNlNmZkYjUyNWFkNmI4NGQuLjg5ZDllNzViMTQ5OGM2ZGQ2YTk3OTYxZjY4ZDJmNWM0OGI5MmY3
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNl
U3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xp
Y3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFk
ZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIFZlY3RvcjxjaGFyPiYpIGZpbmFsOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2Vi
Q29yZTo6UGFnZSYpIGZpbmFsOworICAgIHZvaWQgcGFnZUNvbnRleHRSZW1vdmVkKFdlYkNvcmU6
OlBhZ2UmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
KikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyJiwgYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385586</attachid>
            <date>2019-12-13 01:51:15 -0800</date>
            <delta_ts>2020-01-06 07:19:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20191213105113.patch</filename>
            <type>text/plain</type>
            <size>15808</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVkMWQzNDBhOTZmZmQy
MzcyMTJjMGNlNWUyYTgwMDRlZmQ1MjY2MS4uOWJmMTY0YmU1NDQxMGMwMzlhMmVkMGY5OTA0MTcy
ODdiOWQ1ZDRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTEzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnN0b3BBbGxMb2FkZXJzKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKwog
MjAxOS0xMi0xMiAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gRml4IHRoZSBidWlsZCB3YXJuaW5ncyBiZWxvdyBzaW5jZSByMjUz
MzUzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA5ZGY5NDNkMTA4YTQ1MzU5MThiNmQxYmNhYWY3ZDVhMzRiNjljM2Jm
Li5hOWVjNzgzZTBkNWUwZDgzODQ2OWVkNjI0YjFiNWM2YWI2ZWU4ZTM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDE5LTEyLTEzICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisK
KyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSBy
ZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBtZXNzYWdlIGZvciBicm93c2luZyBjb250ZXh0IHJlbW92YWwuIFdoZW4gdGhl
IG1lc3NhZ2UgaGFwcGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3b3JrIGNh
Y2hlIHRvIHJlbW92ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRpb25zIGZv
ciB0aGF0IHBhZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkNhY2hlOjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJMb2FkZXJTdHJhdGVneTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMTktMTItMTIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBXS1dl
YlZpZXcgY29kZSByZWxhdGVkIHRvIHRlc3RpbmcgdG8gbmV3IGZpbGVzLCB3aXRoIG5ldyBwcml2
YXRlICJmb3IgdGVzdGluZyIgaGVhZGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggZDg2OGIw
M2M3ZDEyZTY3OTlmNDc3ODRmNWFkMDgyZGQ4MjBkZGE3MS4uYTI4MjVmN2MzYjYxZTMxYjk2NWRj
OGE5YjExYTAwYThjNjUzMDNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxOS0xMi0xMyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhh
bmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlk
ZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAg
KFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIwMTkt
MTItMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5kZXhl
ZERCOiBJbnRyb2R1Y2UgV2ViSURCU2VydmVyIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCAwZjFmMjgxYTU5NGY3ZDMxNjFlNDU0MDMzMzk4NDFjYWNkZDM4ZjRm
Li45YjdhMTVkMDg5NTdmOTA5NDAyYWQxMzYzMzJiMTBiNWIwZmQ1NjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4NjQsNiArMTg2NCw4IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5IGNsZWFyUHJv
dmlzaW9uYWxJdGVtCiAgICAgICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c3RvcExv
YWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKICAgICAgICAgbV9kb2N1bWVudExv
YWRlci0+c3RvcExvYWRpbmcoKTsKKyAgICBpZiAobV9mcmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUu
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkpCisgICAg
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5icm93c2luZ0NvbnRl
eHRSZW1vdmVkKGZyYW1lKCkpOwogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWxsQWxs
TG9hZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyIChmcmFtZSA9ICVw
LCBtYWluID0gJWQgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyPSVwKSIsICZtX2ZyYW1lLCBt
X2ZyYW1lLmlzTWFpbkZyYW1lKCksIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSk7
CiAgICAgc2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihudWxscHRyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggMDY0NGZlYzUwOWU2MGY3YTRjZjU5YTM1MmYz
MjMzNWMyZDE2NGQ5OS4uNTc5ZDkwMzhmMzE3ZDQ1ZDI3Yzg0YTI3ZTNmMjFjZmYwYWU4ZmRkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTU5LDYgKzU5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNv
dXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRl
ciYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2xp
ZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhlYWRl
ck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBk
YXRhKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFJlc291cmNlTG9hZGVyKikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZGVyJiwgYm9vbCkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBhMmQxZTRmNDViZjA2OGIzZDNiMmQ2ODYyZjA3
MTBmMTVhNDcyMDNlLi43YmFiNjZhZmFiNDg4MWIwNmI4MTM5NmY3NzAxYTA0YzFhNWRhZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDkzLDYgKzQ5MywxNCBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBsZXRlZChQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQpCiAgICAgc3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFn
ZSh3ZWJQYWdlSUQpOwogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpi
cm93c2luZ0NvbnRleHRSZW1vdmVkKFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVu
dGlmaWVyIHdlYkZyYW1lSUQpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkgeworICAgICAgICBpZiAoYXV0byog
Y2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPmJyb3dzaW5nQ29u
dGV4dFJlbW92ZWQod2ViUGFnZUlELCB3ZWJGcmFtZUlEKTsKKyAgICB9Cit9CisKIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9z
dG5hbWUpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cHJlZmV0Y2hETlMoaG9zdG5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDBlNmU4MjMyYjcyYWE4NzkyMmRhODgwZDJmYzJm
ZGU4ODQxMmY3NGIuLmE5ZTI1ZjZkNjAwMTVlNzU4OGNlZjNhZWNmNWFkODg0ZGEyOWUzNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2
ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAg
dm9pZCBzdGFydERvd25sb2FkKERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAgICAgdm9pZCBjb252
ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGIwZGFhM2MzZjA4NTMxYzk5MTk1NWM5MTljMmMzZDM0
NjNhMmQyNjQuLmY2Y2VmODA0ODU3OWUyNmJhNmRhMTM3MmE0ZWVjZWE1OTZlNmQwMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBy
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90
IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgUGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQorICAgIEJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
d2ViRnJhbWVJRCkKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAgICAgUHJlY29u
bmVjdFRvKE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTA5
YTQyNDc1MjQ5MmQ3MjhiNTY0MTdkZTFiN2RhYTU4NWI4NzVkMS4uZDI1ZWVjODAxMTFmOTViMDY5
NGY4ODdjOWQwNDAyNWVlZDRlMGM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgogI2luY2x1ZGUgIk5l
dHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCAyNzVl
MDBlZThiMDY4Y2Y5ZmJmNTQzNjdiY2U3Njg1MWI1ODQwMzY4Li42Y2I3NjUxYTIyMmVjYWEwYjNj
OWZiYWEzNGQ4YThkZmU3NmMzZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMTksMTQgKzMxOSwyOSBAQCBzdGF0
aWMgYm9vbCBpbmxpbmUgY2FuUmVxdWVzdFVzZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUgogdm9pZCBDYWNoZTo6c3RhcnRBc3luY1JldmFsaWRhdGlvbklm
TmVlZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTmV0
d29ya0NhY2hlOjpLZXkmIGtleSwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmIGVudHJ5LCBjb25z
dCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlEKQogewogICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0
aW9ucy5lbnN1cmUoa2V5LCBbJl0gewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxBc3luY1Jl
dmFsaWRhdGlvbj4oKnRoaXMsIGZyYW1lSUQsIHJlcXVlc3QsIFdURk1vdmUoZW50cnkpLCBbdGhp
cywga2V5XShBc3luY1JldmFsaWRhdGlvbjo6UmVzdWx0IHJlc3VsdCkgeworICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZyYW1lSUQsIHJlcXVlc3Qs
IFdURk1vdmUoZW50cnkpLCBbdGhpcywgZnJhbWVJRCwga2V5XShBc3luY1JldmFsaWRhdGlvbjo6
UmVzdWx0IHJlc3VsdCkgewogICAgICAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25z
LnJlbW92ZShrZXkpOworICAgICAgICAgICAgYXV0byBrZXlzID0gbV9wZW5kaW5nQXN5bmNSZXZh
bGlkYXRpb25CeVBhZ2UuZ2V0KGZyYW1lSUQud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGtleXMu
cmVtb3ZlRmlyc3Qoa2V5KTsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29y
a1Byb2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1
bHQgJWQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4o
cmVzdWx0KSk7CiAgICAgICAgIH0pOworICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGVuZGlu
Z0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLmVuc3VyZShmcmFtZUlELndlYlBhZ2VJRCwgW10gewor
ICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxLZXk+KCk7CisgICAgICAgIH0pOworICAgICAgICBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChrZXkpOwogICAgIH0pOwogfQogI2VuZGlm
CiAKK3ZvaWQgQ2FjaGU6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpCit7CisjaWYgRU5BQkxF
KE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQorICAgIGF1dG8ga2V5cyA9
IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2Uod2ViUGFnZUlEKTsKKyAgICBm
b3IgKGF1dG8ga2V5IDoga2V5cykKKyAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25z
LnJlbW92ZShrZXkpOworI2VuZGlmCit9CisKIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJh
bWVJRCwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRl
eCA1MzU0MGFlZDhlYzA1ZDU1NjI4YTdjNmUzODRiMzA2MjQyOTdiYzkzLi41YmVmNDZiM2E4MzJj
Y2JmZjQ2MmMxMTI1NjBiNDM2OGU2NGZjZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1
ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAgdm9p
ZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOworCiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
KCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIGNv
bnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZURp
cmVjdG9yeTsgfQpAQCAtMTk5LDYgKzIwMSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI+IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlcjsKIAog
ICAgIEhhc2hNYXA8S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3Bl
bmRpbmdBc3luY1JldmFsaWRhdGlvbnM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgVmVjdG9yPEtleT4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlOwogI2Vu
ZGlmCiAKICAgICB1bnNpZ25lZCBtX3RyYXZlcnNlQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5k
ZXggZDcyM2NhZTMzMzE1NTFkZmY4NjYxNzFhODU5YzY0MTgyMGE2Mzc2ZS4uZTEzMDQ0ZDIyZDBj
N2EzNzA0MDFjMjE2ZDNjMzQ1MzQyNzU2NDYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTgxLDYgKzU4
MSwxMiBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZChQYWdlJiBw
YWdlKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UGFnZUxvYWRDb21wbGV0ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBhZ2Up
LmlkZW50aWZpZXIoKSksIDApOwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93c2lu
Z0NvbnRleHRSZW1vdmVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBBU1NFUlQoZnJhbWUucGFnZSgp
KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCpm
cmFtZS5wYWdlKCkpLmlkZW50aWZpZXIoKSwgV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUp
LT5mcmFtZUlEKCkpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTG9hZElkZW50
aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmlu
ZGV4IGY0ZDVhM2Y4MDY1OWFlNzdmOTdlNjEzYmQ0OTJjYTQ5ODFhYzk4YzUuLjMwMzI4NjMwM2Q4
NWRlMDY0ZWI5NDFhMmY0MGYwMzU0NjhjZTM0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNTQsNiArNTQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxv
bmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBm
aW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsK
KyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsK
IAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYmQwY2EzNmY4YWRiNmM2NmJm
YTAzN2IwNTE1OWJhNDVjYjUwYzUyOC4uNGE4ZTFkN2RlNjBiMTJhMDMxNjlhNzBkZTM5NTZjNWVh
MzA0ZjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTE1LDYgKzExNSwx
MCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQoUGFn
ZSYpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpicm93c2luZ0NvbnRl
eHRSZW1vdmVkKEZyYW1lJikKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVzdCksIFt0aGlzLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUmVmUHRyPFdl
YkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ZWM4YTQ5NGJjYTJiMGQ1NzEzNTVhM2MzZTZm
ZGI1MjVhZDZiODRkLi43NTZhMDAzYTFkODg0ZjA1NGMzOWE1MDhhODNmZGI4MzM1NDk0Mjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3Vi
cmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBj
b25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
JiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBW
ZWN0b3I8Y2hhcj4mKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6
OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6
RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
KikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyJiwgYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386844</attachid>
            <date>2020-01-06 07:19:16 -0800</date>
            <delta_ts>2020-01-09 06:53:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200106161914.patch</filename>
            <type>text/plain</type>
            <size>20473</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFkZGM4MmMxMWZmMDQw
MTA5MzhiNjc2NjY2ZGI3ZDUxZTEyMGMzMS4uNzc3NjlkMjkzN2MwODgzYTIzZjQ2MzhhMjg3MDM4
OTA0NTI4ZmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTA2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnN0b3BBbGxMb2FkZXJzKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKwog
MjAyMC0wMS0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IFJUQyBWVEIgZW5jb2RlcnMgaW4gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMTky
Zjg4ZDBkNDRkNmFiOGY2MTdjYzExM2QwYWFjOWMwOTZkNzVkLi45YzE5MmU1M2QzNTNkOTA3NWFm
ZmZhNmI1ZmVjOGZkZjlhNjAzYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAx
LTA2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2Ug
Y2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBtZXNzYWdlIGZv
ciBicm93c2luZyBjb250ZXh0IHJlbW92YWwuIFdoZW4gdGhlIG1lc3NhZ2UgaGFwcGVucywKKyAg
ICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3b3JrIGNhY2hlIHRvIHJlbW92ZSBhbnkgcGVu
ZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRpb25zIGZvciB0aGF0IHBhZ2UuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpicm93c2luZ0Nv
bnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpzdGFydEFz
eW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OkNhY2hlOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hl
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdURjo6R2xvYmFsRnJhbWVJREhhc2g6Omhhc2gpOgor
ICAgICAgICAoV1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpI
YXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6ZW1wdHlWYWx1
ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2Jh
bEZyYW1lSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJh
aXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6aXNEZWxldGVkVmFsdWUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwog
MjAyMC0wMS0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IFJUQyBWVEIgZW5jb2RlcnMgaW4gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxv
ZwppbmRleCBiNzdkOWViMDYwOGFhNzQxZTgzNTcxODlmOWY2YTRkOGUxZWEwNWM2Li5jZDI0Mjk5
ZjIwNzZjYmI3ZmUxMDc5YzU1NTVmOTVhOTFmZDkwYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTA2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0
ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcm92aWRlIGVtcHR5IHN0dWIgZm9yIG5ldyBtZXRob2Qgb24gTG9hZGVyU3RyYXRl
Z3kuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpicm93c2luZ0NvbnRleHRS
ZW1vdmVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaDoKKwogMjAyMC0wMS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc29tZSBzaGFyZWQgc2NoZW1lcyB0byB0aGUgV2ViS2l0Lnhjd29y
a3NwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5YTcyYjkwNjIx
NWQzNzkwODE0MjU1ZmYwYzVjZDljMzRkOWY5ZjcwLi5jMGVmNTQ1MTM5NjRlNzA5MWRkMDhlNjc2
NGU4NmM5ODlhZTY1Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTE4MzgsNiArMTgzOCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKENsZWFy
UHJvdmlzaW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtCiAgICAgICAgIG1fcHJv
dmlzaW9uYWxEb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVu
dExvYWRlcikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKKyAgICBp
ZiAobV9mcmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5p
c1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkpCisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5s
b2FkZXJTdHJhdGVneSgpLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKGZyYW1lKCkpOwogCiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWxsQWxsTG9hZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9u
YWwgZG9jdW1lbnQgbG9hZGVyIChmcmFtZSA9ICVwLCBtYWluID0gJWQgbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyPSVwKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCksIG1fcHJv
dmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSk7CiAgICAgc2V0UHJvdmlzaW9uYWxEb2N1bWVu
dExvYWRlcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2Fk
ZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5k
ZXggMDY0NGZlYzUwOWU2MGY3YTRjZjU5YTM1MmYzMjMzNWMyZDE2NGQ5OS4uNTc5ZDkwMzhmMzE3
ZDQ1ZDI3Yzg0YTI3ZTNmMjFjZmYwYWU4ZmRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRl
clN0cmF0ZWd5LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3Qg
RmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNv
dXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJyb3dzaW5n
Q29udGV4dFJlbW92ZWQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFJl
c291cmNlTG9hZGVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFJl
c291cmNlTG9hZGVyJiwgYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRl
eCAyYjYwNzg5NmM5ZjVhMjU2ZDI2OGUwODVjMDgwOWJhODYyZTNkZWE0Li45NzNkNmM4MzQ0YWM1
MmVkNTg4OTBhMjk5MGM5YzQ0ODYxYzFhMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNDg1LDYgKzQ4NSwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpwYWdlTG9hZENvbXBsZXRlZChQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCiAgICAgc3RvcEFs
bE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSh3ZWJQYWdlSUQpOwogfQogCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RCwgRnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24g
PSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkgeworICAgICAg
ICBpZiAoYXV0byogY2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
PmJyb3dzaW5nQ29udGV4dFJlbW92ZWQod2ViUGFnZVByb3h5SUQsIHdlYlBhZ2VJRCwgd2ViRnJh
bWVJRCk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpw
cmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogewogICAgIG1fbmV0d29ya1Byb2Nl
c3MtPnByZWZldGNoRE5TKGhvc3RuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAw
ZTZlODIzMmI3MmFhODc5MjJkYTg4MGQyZmMyZmRlODg0MTJmNzRiLi5iNWI0ZjY3YzNlZjE2YWU2
OWQ4MThjZWEzMjlmNDQ3MDJkZjQ1ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0x
OTEsNiArMTkxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIo
UmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJl
c291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwogICAgIHZvaWQg
c3RhcnREb3dubG9hZChEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCBiMGRhYTNjM2YwODUzMWM5OTE5NTVjOTE5YzJjM2QzNDYzYTJk
MjY0Li45ZGJiYTBhYjQzZmYwMjc2N2I1NzhlOGI5NWMyMDUxODdlNDliOTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIExvYWRQaW5nKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycykKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNv
dXJjZUxvYWRJZGVudGlmaWVyKQogICAgIFBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCkKKyAgICBCcm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRCkKICAg
ICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAgICAgUHJlY29ubmVjdFRvKE9wdGlvbmFs
PHVpbnQ2NF90PiBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNGRhMDRhZGQyZmQyMmQ1NTE0
NDQwNTlkZjVmMzIxMmFhOWFiNWRmZS4uMjIyZTg5ZmRkYjZiNWYxYzVmY2ZjNTlmZjkzODk0NTkx
MTg3NTE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCA4NDRkYjliNjA1MjU5NzY0YmIx
ZjM1ZGM4Yjc0ZGM3MGU3MTZmYzdjLi4yMzY0MzA4OTdlZDZkNTMxODgyMjg0NzY2Y2QyMGMzNGFk
NDI4NTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMTksMTQgKzMxOSwyOSBAQCBzdGF0aWMgYm9vbCBpbmxpbmUg
Y2FuUmVxdWVzdFVzZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUgogdm9pZCBDYWNoZTo6c3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVlZGVkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkm
IGtleSwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmIGVudHJ5LCBjb25zdCBHbG9iYWxGcmFtZUlE
JiBmcmFtZUlEKQogewogICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5lbnN1cmUoa2V5
LCBbJl0gewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRo
aXMsIGZyYW1lSUQsIHJlcXVlc3QsIFdURk1vdmUoZW50cnkpLCBbdGhpcywga2V5XShBc3luY1Jl
dmFsaWRhdGlvbjo6UmVzdWx0IHJlc3VsdCkgeworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxB
c3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZyYW1lSUQsIHJlcXVlc3QsIFdURk1vdmUoZW50cnkp
LCBbdGhpcywgZnJhbWVJRCwga2V5XShBc3luY1JldmFsaWRhdGlvbjo6UmVzdWx0IHJlc3VsdCkg
ewogICAgICAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOwor
ICAgICAgICAgICAgYXV0byBrZXlzID0gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2Uu
Z2V0KGZyYW1lSUQpOworICAgICAgICAgICAga2V5cy5yZW1vdmVGaXJzdChrZXkpOwogICAgICAg
ICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0
aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRoIHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCku
dXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7Cisg
ICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2Uu
ZW5zdXJlKGZyYW1lSUQsIFtdIHsKKyAgICAgICAgICAgIHJldHVybiBWZWN0b3I8S2V5PigpOwor
ICAgICAgICB9KTsKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoa2V5
KTsKICAgICB9KTsKIH0KICNlbmRpZgogCit2b2lkIENhY2hlOjpicm93c2luZ0NvbnRleHRSZW1v
dmVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQp
Cit7CisjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQor
ICAgIGF1dG8ga2V5cyA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2UoeyB3
ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEIH0pOworICAgIGZvciAoYXV0byBr
ZXkgOiBrZXlzKQorICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtl
eSk7CisjZW5kaWYKK30KKwogdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBSZXRy
aWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDUzNTQwYWVk
OGVjMDVkNTU2MjhhN2M2ZTM4NGIzMDYyNDI5N2JjOTMuLmY4OGQ1M2VhYmRiMGM0YWRkYjA5Zjcz
MjNhZTQzNDQ1ZjFmMjUzMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtNDQsNiArNDQsNTggQEAgY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogfQogCituYW1lc3BhY2UgV2ViS2l0IHsKK25h
bWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworCitzdHJ1Y3QgR2xvYmFsRnJhbWVJRCB7CisgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRDsKKyAgICBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7
CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Cit9OworCitpbmxpbmUgdW5zaWduZWQgR2xv
YmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgaGFzaGVzWzJdOworICAg
IGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7CisgICAgaGFz
aGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7CisKKyAgICByZXR1cm4g
U3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOworfQorCitp
bmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2Jh
bEZyYW1lSUQmIGIpCit7CisgICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBz
aW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBp
cyBhbHdheXMKKyAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5Lgor
ICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIu
ZnJhbWVJRDsKK30KKworfTsKK307CisKK25hbWVzcGFjZSBXVEYgeworCitzdHJ1Y3QgR2xvYmFs
RnJhbWVJREhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0
d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJh
bWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsg
cmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKKyAgICBzdGF0aWMgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVj
dElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1
cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2
NF90Pjo6bWF4KCk7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktp
dDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7CisgICAgdHlwZWRlZiBHbG9iYWxGcmFt
ZUlESGFzaCBIYXNoOworfTsKKworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0
d29ya1Byb2Nlc3M7CkBAIC05MCwzMCArMTQyLDYgQEAgZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7
CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotc3RydWN0IEdsb2JhbEZyYW1lSUQg
ewotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQ7Ci0gICAgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwotICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEOwotICAgIAotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsKLX07Ci0KLWlubGlu
ZSB1bnNpZ25lZCBHbG9iYWxGcmFtZUlEOjpoYXNoKCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBo
YXNoZXNbMl07Ci0gICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKHdlYlBhZ2VJRC50b1VJbnQ2
NCgpKTsKLSAgICBoYXNoZXNbMV0gPSBXVEY6OmludEhhc2goZnJhbWVJRC50b1VJbnQ2NCgpKTsK
LQotICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFz
aGVzKSk7Ci19Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR2xvYmFsRnJhbWVJRCYg
YSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgYikKLXsKLSAgICAvLyBObyBuZWVkIHRvIGNoZWNrIHdl
YlBhZ2VQcm94eUlEIHNpbmNlIHdlYlBhZ2VJRHMgYXJlIGdsb2JhbGx5IHVuaXF1ZSBhbmQgYSBn
aXZlbiBXZWJQYWdlIGlzIGFsd2F5cwotICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBX
ZWJQYWdlUHJveHkuCi0gICAgcmV0dXJuIGEud2ViUGFnZUlEID09IGIud2ViUGFnZUlEICYmICBh
LmZyYW1lSUQgPT0gYi5mcmFtZUlEOwotfQotCiBlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWlu
dDhfdCB7CiAgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291cmNl
cyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBubyBy
ZWFkIHRpbWVvdXRzLgogICAgIFRlc3RpbmdNb2RlID0gMSA8PCAwLApAQCAtMTczLDYgKzIwMSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBOZXR3b3JrQ2FjaGU6OktleSYsIHN0
ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYpOwogI2VuZGlmCiAK
KyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisKICAg
ICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9j
ZXNzLmdldCgpOyB9CiAgICAgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlRGlyZWN0b3J5OyB9CkBAIC0xOTksNiArMjI5
LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlY3VsYXRpdmVMb2FkTWFuYWdl
cj4gbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOwogCiAgICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5p
cXVlX3B0cjxBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsK
KyAgICBIYXNoTWFwPEdsb2JhbEZyYW1lSUQsIFZlY3RvcjxLZXk+PiBtX3BlbmRpbmdBc3luY1Jl
dmFsaWRhdGlvbkJ5UGFnZTsKICNlbmRpZgogCiAgICAgdW5zaWduZWQgbV90cmF2ZXJzZUNvdW50
IHsgMCB9OwpAQCAtMjA4LDI1ICsyMzksMyBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBO
ZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1uYW1lc3BhY2UgV1RGIHsKLQot
c3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5KSB7IHJldHVybiBrZXku
aGFzaCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiA6IEdlbmVy
aWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7Ci0gICAg
c3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGVtcHR5VmFsdWUoKSB7
IHJldHVybiB7IH07IH0KLQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyBzbG90LndlYlBhZ2VJ
RCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oc3Rk
OjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQotCi0gICAgc3RhdGljIGJvb2wg
aXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQm
IHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkgPT0gc3RkOjpudW1lcmlj
X2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZh
dWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gewotICAgIHR5cGVk
ZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBkNzIz
Y2FlMzMzMTU1MWRmZjg2NjE3MWE4NTljNjQxODIwYTYzNzZlLi4xOTQ5Mjc0MTc0NDdlZmViZmI5
NTY2MmEzOWZhMjc1NmUyMjg4YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC01ODEsNiArNTgxLDEzIEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmIHBhZ2UpCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpQYWdlTG9hZENvbXBsZXRlZChXZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSkuaWRlbnRp
ZmllcigpKSwgMCk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4
dFJlbW92ZWQoRnJhbWUmIGZyYW1lKQoreworICAgIEFTU0VSVChmcmFtZS5wYWdlKCkpOworICAg
IGF1dG8mIHBhZ2UgPSBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoKmZyYW1lLnBhZ2UoKSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpCcm93c2luZ0NvbnRleHRSZW1vdmVkKHBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBw
YWdlLmlkZW50aWZpZXIoKSwgV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpLT5mcmFtZUlE
KCkpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQog
ewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IGY0ZDVh
M2Y4MDY1OWFlNzdmOTdlNjEzYmQ0OTJjYTQ5ODFhYzk4YzUuLjMwMzI4NjMwM2Q4NWRlMDY0ZWI5
NDFhMmY0MGYwMzU0NjhjZTM0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNl
U3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwg
Y29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKICAg
ICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lk
IGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYmQwY2EzNmY4YWRiNmM2NmJmYTAzN2IwNTE1
OWJhNDVjYjUwYzUyOC4uNGE4ZTFkN2RlNjBiMTJhMDMxNjlhNzBkZTM5NTZjNWVhMzA0ZjhmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTE1LDYgKzExNSwxMCBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpCiB7CiB9
CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpicm93c2luZ0NvbnRleHRSZW1vdmVk
KEZyYW1lJikKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxl
UGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
Q2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikgbXV0YWJsZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaAppbmRleCA4ZWM4YTQ5NGJjYTJiMGQ1NzEzNTVhM2MzZTZmZGI1MjVhZDZi
ODRkLi43NTZhMDAzYTFkODg0ZjA1NGMzOWE1MDhhODNmZGI4MzM1NDk0Mjc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9h
ZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRp
b25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VM
b2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
V2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hh
cj4mKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBm
aW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBm
aW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7
CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9v
bCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387221</attachid>
            <date>2020-01-09 06:53:05 -0800</date>
            <delta_ts>2020-01-10 00:01:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200109155303.patch</filename>
            <type>text/plain</type>
            <size>30099</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTllNzg2ZGU2MDVjMmM0
NDcyZWFhZGZhODU5YzIwNmE5NjgyY2QxNy4uN2MzNjlkODMwYjc0Y2UzNjQ5OTUzNmVjNDI0OTBi
NWU3NWMwOTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTA4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIEludHJvZHVjZSBKU0FycmF5SXRlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDEwMTE3ODk1OWM4
Zjk3ZThmNjgzZmUwN2E5MTQ4ZDU2Mjk1MjNiYi4uOTk0NjAzNWVlNDkzYTUzYTAzOTE1MGNjMjg1
NjA0MmQwNGU5Y2Q0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMC0wMS0wOSAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUg
Zm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWVzc2FnZSBmb3IgYnJvd3Np
bmcgY29udGV4dCByZW1vdmFsLiBXaGVuIHRoZSBtZXNzYWdlIGhhcHBlbnMsCisgICAgICAgIHBh
c3MgaXQgZG93biB0byB0aGUgbmV0d29yayBjYWNoZSB0byByZW1vdmUgYW55IHBlbmRpbmcKKyAg
ICAgICAgYXN5bmMgcmV2YWxpZGF0aW9ucyBmb3IgdGhhdCBwYWdlLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVt
b3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkFzeW5jUmV2YWxpZGF0aW9u
OjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6c3RhcnRBc3luY1JldmFsaWRh
dGlvbklmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6YnJv
d3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RDo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1lSURIYXNoOjpoYXNoKToKKyAgICAgICAgKFdU
Rjo6R2xvYmFsRnJhbWVJREhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmVtcHR5VmFsdWUpOgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6
Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZDo6Y2FuY2VsKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YnJvd3NpbmdDb250ZXh0UmVt
b3ZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6
CisKIDIwMjAtMDEtMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBp
biBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5k
ZXggNTBiYWM2NzZlY2UwOTRmYWExOGY3OWUyYmE2OWVlZTc0Mzc2YTYzZS4uNTA1MDcwZWMyOWIx
ZmI4MjIyMzJmZjQ1ZGU1NmJkOTFjMTM5OWJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wMS0wOSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2
YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUHJvdmlkZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6
CisKIDIwMjAtMDEtMDcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjI0ODczNCk6IGRpZmZlcmVudCB0aHJlYWRzIHdyaXRlIG1fc3RvcmFn
ZU1hcCBvZiBTdG9yYWdlQXJlYUltcGwgYXQgdGhlIHNhbWUgdGltZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYTEyODU4NTFmMjU5ZDgyYTYzYTg2ZGU1OGM1M2RlM2Uz
YjAyZDkxNC4uNzhjNTIzNWRlOWIxODBmZjJjMjgyMWRlOThkMmNjMGE2YzIxODA5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xODQxLDYgKzE4NDEsOCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyhDbGVhclByb3Zpc2lvbmFsSXRlbVBvbGljeSBj
bGVhclByb3Zpc2lvbmFsSXRlbQogICAgICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIt
PnN0b3BMb2FkaW5nKCk7CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIG1fZG9j
dW1lbnRMb2FkZXItPnN0b3BMb2FkaW5nKCk7CisgICAgaWYgKG1fZnJhbWUucGFnZSgpICYmICFt
X2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuaXNTVkdJbWFnZUNocm9tZUNsaWVudCgp
KQorICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+YnJvd3Np
bmdDb250ZXh0UmVtb3ZlZChmcmFtZSgpKTsKIAogICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAic3RvcEFsbExvYWRlcnM6IENsZWFyaW5nIHBy
b3Zpc2lvbmFsIGRvY3VtZW50IGxvYWRlciAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyPSVw
KSIsIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSk7CiAgICAgc2V0UHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0
ZWd5LmgKaW5kZXggMDY0NGZlYzUwOWU2MGY3YTRjZjU5YTM1MmYzMjMzNWMyZDE2NGQ5OS4uNTc5
ZDkwMzhmMzE3ZDQ1ZDI3Yzg0YTI3ZTNmMjFjZmYwYWU4ZmRkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNvdXJjZSYsIFJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlKFJlc291cmNlTG9hZGVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKFJlc291cmNlTG9hZGVyJiwgYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzNkOGUzNWRk
ZjJiMjE1ZTVhYzdlOTFiYTk0NDUxNmRhYTYwODJiYy4uODVkYmQzNWE0YWRmNmEwYjIxYTU2YTE0
OTA0OTMyMzNhZmVjMGUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMTY5LDYgKzExNjksMTMgQEAgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
ZGV0ZXJtaW5lUmV2YWxpZGEKICAgICAgICAgcmV0dXJuIFJlbG9hZDsKICAgICB9CiAKKyAgICAv
LyBEb24ndCByZXVzZSByZXNvdXJjZXMgd2l0aCBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4KKyAg
ICBpZiAoZXhpc3RpbmdSZXNvdXJjZS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xTdGFsZVdoaWxl
UmV2YWxpZGF0ZSgpKSB7CisgICAgICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5IHJlbG9hZGluZyBkdWUgdG8g
Q2FjaGUtY29udHJvbDogbm8tc3RvcmUuIik7CisgICAgICAgIGxvZ01lbW9yeUNhY2hlUmVzb3Vy
Y2VSZXF1ZXN0KGZyYW1lKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtl
eSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVudXNlZFJlYXNvbk5vU3RvcmVLZXkoKSk7Cisg
ICAgICAgIHJldHVybiBSZWxvYWQ7CisgICAgfQorCiAgICAgLy8gSWYgY3JlZGVudGlhbHMgd2Vy
ZSBzZW50IHdpdGggdGhlIHByZXZpb3VzIHJlcXVlc3QgYW5kIHdvbid0IGJlCiAgICAgLy8gd2l0
aCB0aGlzIG9uZSwgb3IgdmljZSB2ZXJzYSwgcmUtZmV0Y2ggdGhlIHJlc291cmNlLgogICAgIC8v
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDJiNjA3ODk2YzlmNWEyNTZkMjY4ZTA4
NWMwODA5YmE4NjJlM2RlYTQuLjk3M2Q2YzgzNDRhYzUyZWQ1ODg5MGEyOTkwYzljNDQ4NjFjMWEz
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00ODUsNiArNDg1LDE0IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCkKICAgICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdG
b3JQYWdlKHdlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdl
UHJveHlJRCwgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgd2ViRnJh
bWVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKCkpKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IHNlc3Np
b24tPmNhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCh3
ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEKTsKKyAgICB9Cit9CisKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYg
aG9zdG5hbWUpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cHJlZmV0Y2hETlMoaG9zdG5hbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDBlNmU4MjMyYjcyYWE4NzkyMmRhODgwZDJm
YzJmZGU4ODQxMmY3NGIuLmI1YjRmNjdjM2VmMTZhZTY5ZDgxOGNlYTMyOWY0NDcwMmRmNDVlZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29u
c3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzdGFydERvd25sb2FkKERvd25sb2FkSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
TmFtZSA9IHsgfSk7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
dWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGIwZGFh
M2MzZjA4NTMxYzk5MTk1NWM5MTljMmMzZDM0NjNhMmQyNjQuLjlkYmJhMGFiNDNmZjAyNzY3YjU3
OGU4Yjk1YzIwNTE4N2U0OWI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJl
bW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAg
UGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQorICAg
IEJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0
bmFtZSkKICAgICBQcmVjb25uZWN0VG8oT3B0aW9uYWw8dWludDY0X3Q+IHByZWNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCA0ZGEwNGFkZDJmZDIyZDU1MTQ0NDA1OWRmNWYzMjEyYWE5YWI1ZGZlLi4y
MjJlODlmZGRiNmI1ZjFjNWZjZmM1OWZmOTM4OTQ1OTExODc1MTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDQsNyArNDQsNiBA
QAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFw
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1Jl
dmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5j
UmV2YWxpZGF0aW9uLmNwcAppbmRleCAyMTAzNWI1YmE2Y2FkMDcwNDMyYTBkMTBkYzdkNmZiZGMz
YTk2MjVhLi5kNmIxNzc0MTZiYzAzYjUxMTA3Y2IwZTI5ZGU3Mjk4MTQ4YzliMGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxp
ZGF0aW9uLmNwcApAQCAtNTQsNiArNTQsMTIgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgY29uc3RydWN0UmV2YWxpZGF0aW9uUmVxdWVzdChjb25zdCBLZXkmIGsKICAg
ICByZXR1cm4gcmV2YWxpZGF0aW9uUmVxdWVzdDsKIH0KIAordm9pZCBBc3luY1JldmFsaWRhdGlv
bjo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9sb2FkKQorICAgICAgICBtX2xvYWQtPmNhbmNlbCgp
OworfQorCiB2b2lkIEFzeW5jUmV2YWxpZGF0aW9uOjpzdGFsZVdoaWxlUmV2YWxpZGF0ZUVuZGlu
ZygpCiB7CiAgICAgaWYgKG1fY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKaW5kZXggM2Rk
NjA4ZDBlMDUzYmE4MzIxNmRlNDk0ZTIzMWYwNDdkMjQ0MzJlNC4uNzhiYmRmMTVjZGE1ZDkwMzEx
OTk4NmM0YmU5Mzc1MzlmMTk2YmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaApAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihD
YWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3Qg
U3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
aW5kZXggYmY2NGFjYWJlYmQ3MDU1NWY1OThiMTMzMTIxOGZjMTU1YTE0YzYzOC4uZmYyM2JmN2I3
M2ZkMzdjOTA2ZGE4ZGI3YjU3MDgwYmQ5N2I2NDkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTks
MzEgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZh
bGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBl
bnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3lu
Y1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVu
dHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAg
ICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5l
bnN1cmUoZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxLZXk+KCk7Cisg
ICAgICAgIH0pOworICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChrZXkp
OworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZy
YW1lSUQsIHJlcXVlc3QsIFdURk1vdmUoZW50cnkpLCBbdGhpcywgZnJhbWVJRCwga2V5XShBc3lu
Y1JldmFsaWRhdGlvbjo6UmVzdWx0IHJlc3VsdCkgewogICAgICAgICAgICAgbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOworICAgICAgICAgICAgYXV0byBrZXlzID0gbV9w
ZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2UuZ2V0KGZyYW1lSUQpOworICAgICAgICAgICAg
a2V5cy5yZW1vdmVGaXJzdChrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihO
ZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRo
IHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8
aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAjZW5kaWYKIAordm9pZCBD
YWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBhdXRvIGtleXMgPSBtX3BlbmRpbmdBc3luY1Jl
dmFsaWRhdGlvbkJ5UGFnZS50YWtlKHsgd2ViUGFnZVByb3h5SUQsIHdlYlBhZ2VJRCwgd2ViRnJh
bWVJRCB9KTsKKyAgICBmb3IgKGF1dG8ga2V5IDoga2V5cykgeworICAgICAgICBhdXRvIHJldmFs
aWRhdGlvbiA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5nZXQoa2V5KTsKKyAgICAgICAg
cmV2YWxpZGF0aW9uLT5jYW5jZWwoKTsKKyAgICB9CisjZW5kaWYKK30KKwogdm9pZCBDYWNoZTo6
cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBH
bG9iYWxGcmFtZUlEJiBmcmFtZUlELCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5oCmluZGV4IDc5ZTFmNWRjOTVkN2QyNjBlOWJkOTg2MTI2OGRhMTEzNjA0MjBi
MDkuLjU4NjUwZDgxODZiYmJjZGMzODc4M2YwYzgxZTU2M2I3MzU3ZjBkNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtNDQs
NiArNDQsNTggQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwog
fQogCituYW1lc3BhY2UgV2ViS2l0IHsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworCitzdHJ1
Y3QgR2xvYmFsRnJhbWVJRCB7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJv
eHlJRDsKKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CisgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7
Cit9OworCitpbmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Cit7Cisg
ICAgdW5zaWduZWQgaGFzaGVzWzJdOworICAgIGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQ
YWdlSUQudG9VSW50NjQoKSk7CisgICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQu
dG9VSW50NjQoKSk7CisKKyAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hl
cywgc2l6ZW9mKGhhc2hlcykpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEds
b2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCit7CisgICAgLy8gTm8gbmVl
ZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1
bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKKyAgICAvLyBhc3NvY2lhdGVkIHdp
dGggdGhlIHNhbWUgV2ViUGFnZVByb3h5LgorICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndl
YlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsKK30KKworfTsKK307CisKK25hbWVz
cGFjZSBXVEYgeworCitzdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggeworICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQ+IHsKKyAgICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQg
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0
RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7
IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9CisKKyAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9
PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KK307CisKK3RlbXBsYXRl
PD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
PiB7CisgICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOworfTsKKworfQorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CkBAIC05MCwzMCArMTQyLDYg
QEAgZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAog
fTsKIAotc3RydWN0IEdsb2JhbEZyYW1lSUQgewotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
d2ViUGFnZVByb3h5SUQ7Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwot
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwotICAgIAotICAgIHVuc2lnbmVk
IGhhc2goKSBjb25zdDsKLX07Ci0KLWlubGluZSB1bnNpZ25lZCBHbG9iYWxGcmFtZUlEOjpoYXNo
KCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBoYXNoZXNbMl07Ci0gICAgaGFzaGVzWzBdID0gV1RG
OjppbnRIYXNoKHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKLSAgICBoYXNoZXNbMV0gPSBXVEY6Omlu
dEhhc2goZnJhbWVJRC50b1VJbnQ2NCgpKTsKLQotICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhh
c2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7Ci19Ci0KLWlubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgR2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgYikKLXsK
LSAgICAvLyBObyBuZWVkIHRvIGNoZWNrIHdlYlBhZ2VQcm94eUlEIHNpbmNlIHdlYlBhZ2VJRHMg
YXJlIGdsb2JhbGx5IHVuaXF1ZSBhbmQgYSBnaXZlbiBXZWJQYWdlIGlzIGFsd2F5cwotICAgIC8v
IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBXZWJQYWdlUHJveHkuCi0gICAgcmV0dXJuIGEud2Vi
UGFnZUlEID09IGIud2ViUGFnZUlEICYmICBhLmZyYW1lSUQgPT0gYi5mcmFtZUlEOwotfQotCiBl
bnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGluZyBtb2Rl
IHdlIHRyeSB0byBlbGltaW5hdGUgc291cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5v
dCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBubyByZWFkIHRpbWVvdXRzLgogICAgIFRlc3RpbmdNb2Rl
ID0gMSA8PCAwLApAQCAtMTczLDYgKzIwMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXN5
bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBOZXR3b3JrQ2FjaGU6OktleSYsIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiwgY29uc3Qg
R2xvYmFsRnJhbWVJRCYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92
ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CisKICAgICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nl
c3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzLmdldCgpOyB9CiAgICAgY29uc3QgUEFMOjpT
ZXNzaW9uSUQmIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdl
RGlyZWN0b3J5OyB9CkBAIC0xOTksNiArMjI5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlY3VsYXRpdmVMb2FkTWFuYWdlcj4gbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOwog
CiAgICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JldmFsaWRhdGlvbj4+IG1f
cGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKKyAgICBIYXNoTWFwPEdsb2JhbEZyYW1lSUQsIFZl
Y3RvcjxLZXk+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZTsKICNlbmRpZgogCiAg
ICAgdW5zaWduZWQgbV90cmF2ZXJzZUNvdW50IHsgMCB9OwpAQCAtMjA4LDI1ICsyMzksMyBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKLSAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFs
RnJhbWVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdl
YktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0K
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEPiB7Ci0gICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KLQotICAgIHN0YXRpYyB2
b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJh
bWVJRCYgc2xvdCkgeyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1h
eCgpKTsgfQotCi0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlE
LnRvVUludDY0KCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
R2xvYmFsRnJhbWVJRD4gewotICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKLX07
Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAppbmRleCAzNjVhNjMxYzJk
MzYwZmE2ZmIwNWJhOGE3ZWVmNmUzNTljZGFhNWVhLi41MTEwNDcyYjBiNjQ2MDE3NGQ4YWYyZDcy
NDMzMzU0ZTUxZGIyZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCkBA
IC02Nyw2ICs2NywxMiBAQCBTcGVjdWxhdGl2ZUxvYWQ6On5TcGVjdWxhdGl2ZUxvYWQoKQogICAg
IEFTU0VSVCghbV9uZXR3b3JrTG9hZCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVMb2FkOjpjYW5j
ZWwoKQoreworICAgIGlmIChtX25ldHdvcmtMb2FkKQorICAgICAgICBtX25ldHdvcmtMb2FkLT5j
YW5jZWwoKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OndpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJl
Y3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBM
T0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLCAiU3BlY3VsYXRpdmUgcmVkaXJl
Y3QgJXMgLT4gJXMiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlZGly
ZWN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVM
b2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5oCmluZGV4IDkyNjRiYjE3MzgwNzNjMDg3ZmEwM2NhOGFhM2E4NGE1NDZm
OTY0YzEuLmY5OGI1NjQ4NTJhZjk0MDU2ZjQ5YjVlMTRlZjc4ZGI5NWY1ZGUyZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZ2luYWxSZXF1ZXN0OyB9CiAKKyAgICB2b2lkIGNhbmNlbCgpOworCiBw
cml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggMTFkNDk4OTljNGZiNGZl
YjU0MmVkZmE3ZmRmYzU3NmM5OGM4YTk3Yi4uN2Y3NjAxZmQxMjg3YjI4Y2RmNDFkNjMxOWZiZWVh
ZGE3NDRlYjBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNjA2LDYgKzYwNiwxMyBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZChQYWdlJiBwYWdlKQogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxv
YWRDb21wbGV0ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBhZ2UpLmlkZW50aWZpZXIoKSksIDAp
OwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZy
YW1lJiBmcmFtZSkKK3sKKyAgICBBU1NFUlQoZnJhbWUucGFnZSgpKTsKKyAgICBhdXRvJiBwYWdl
ID0gV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCpmcmFtZS5wYWdlKCkpOworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QnJvd3NpbmdD
b250ZXh0UmVtb3ZlZChwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcGFnZS5pZGVudGlm
aWVyKCksIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKS0+ZnJhbWVJRCgpKSwgMCk7Cit9
CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0
aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5YTc4YTVmZTI0ZGE3OGIz
NGViZWZhNzg1YTA3YjUwNDliYTQ3M2JhLi4yMmY2NDRmZDdmNDUwZDMyZWE0NWY5N2UyNzQ4OGVm
NWYzNGMxNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
bG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJP
cHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENy
ZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgZmluYWw7CiAgICAgdm9pZCBwYWdl
TG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0Nv
bnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGlu
ZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCmluZGV4IGJkMGNhMzZmOGFkYjZjNjZiZmEwMzdiMDUxNTliYTQ1Y2I1MGM1
MjguLjRhOGUxZDdkZTYwYjEyYTAzMTY5YTcwZGUzOTU2YzVlYTMwNGY4ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExNSw2ICsxMTUsMTAgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKQogewogfQogCit2b2lkIFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpCit7
Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVh
bUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCYgY2xp
ZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmNyZWF0ZShmcmFt
ZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmgKaW5kZXggOGVjOGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAw
M2ExZDg4NGYwNTRjMzlhNTA4YTgzZmRiODMzNTQ5NDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4m
JikgZmluYWw7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZy
YW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikgZmluYWw7
CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAg
dm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAg
ICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggN2QwYjcxMTQzOWVlMzRiZjViMjJhMDUw
MjgzOTZiZWU2MWYwNzM5OS4uYzZlZWQ3MzViMTE4YTdlZDlmMzEyNTU3Y2Y1YjliMjZiNDBkMDk3
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAt
MDEtMDkgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFn
ZSBjbG9zdXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIHZl
cmlmeSB0aGF0IGZyYW1lIHJlbW92YWwgdHJpZ2dlcnMgcmV2YWxpZGF0aW9uIGNhbmNlbGxhdGlv
bi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZh
bGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFs
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weTogQWRkZWQuCisgICAgICAg
IChpZF90b2tlbik6CisgICAgICAgIChtYWluKToKKwogMjAyMC0wMS0wOCAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJl
bW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjNGViNjA1MzZjNjUzNDE4ZDkzYjMxN2UyZTNmYzQwZTEwZThk
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisgIAorCitQQVNTIEZyYW1lIHJlbW92YWwgc2hvdWxk
IGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRl
L2ZyYW1lLXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWU1ZjM0ZWY4MWZkMDU0ZDE4NjI5OTVhOGNiYzM3YWE1MTBmMjdjYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwKQEAgLTAs
MCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+VGVzdCB0aGF0IGZyYW1lIHJlbW92YWwgY2FuY2VscyBpdHMgcmV2YWxpZGF0aW9uczwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgdmFyIHJlcXVlc3RfdG9rZW4gPSB0b2tlbigp
OworICBjb25zdCB1cmwgPSBgcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5P3Rva2VuPWAgKyByZXF1
ZXN0X3Rva2VuCisKKyAgLy8gZmlyc3QgZnJhbWUgbG9hZAorICBsZXQgZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgZnJhbWUuc3JjID0gdXJsOworICBmcmFtZS5v
bmxvYWQgPSAoKSA9PiB7CisgICAgLy8gc2Vjb25kIGZyYW1lIGxvYWQsIHRyaWdnZXJzIHJldmFs
aWRhdGlvbgorICAgIGxldCBmcmFtZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKKyAgICBmcmFtZTIuc3JjID0gdXJsOworICAgIGZyYW1lMi5vbmxvYWQgPSAoKSA9PiB7Cisg
ICAgICAvLyByZW1vdmUgZnJhbWUsIGNhbmNlbGluZyByZXZhbGlkYXRpb24KKyAgICAgIGZyYW1l
Mi5yZW1vdmUoKTsKKyAgICAgIC8vIHRoaXJkIGZyYW1lIGxvYWQsIHRyaWdnZXJzIG5ldyByZXZh
bGlkYXRpb24KKyAgICAgIGxldCBmcmFtZTMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgIGZyYW1lMy5zcmMgPSB1cmw7CisgICAgICBmcmFtZTMub25sb2FkID0gKCkg
PT4geworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5P3F1ZXJ5JnRva2Vu
PSIgKyByZXF1ZXN0X3Rva2VuKS50aGVuKHQuc3RlcF9mdW5jKChyZXNwb25zZSkgPT4geworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoIkNvdW50IiksICcyJyk7
CisgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pKTsKKyAgICAgIH0KKyAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUzKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChmcmFtZTIpOworICB9CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJh
bWUpOworfSwgJ0ZyYW1lIHJlbW92YWwgc2hvdWxkIGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucycp
OworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3Vy
Y2VzL3N0YWxlLWZyYW1lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFt
ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MWI4MTBmMWNmZTNkNmQ4M2M3YWViYzE1NGViNWFmOTM1ODVmYzUy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFt
ZS5weQpAQCAtMCwwICsxLDM4IEBACitpbXBvcnQgcmFuZG9tLCBzdHJpbmcsIGRhdGV0aW1lLCB0
aW1lCisKK2RlZiBpZF90b2tlbigpOgorICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNh
c2UKKyAgIHJldHVybiAnJy5qb2luKHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFu
Z2UoMjApKQorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaXNfcmV2YWxpZGF0
aW9uID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCisgICAgdG9r
ZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iLCBOb25lKQorICAgIGlzX3F1ZXJ5ID0gcmVx
dWVzdC5HRVQuZmlyc3QoInF1ZXJ5IiwgTm9uZSkgIT0gTm9uZQorICAgIHdpdGggcmVxdWVzdC5z
ZXJ2ZXIuc3Rhc2gubG9jazoKKyAgICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFr
ZSh0b2tlbikKKyAgICAgIGNvdW50ID0gMAorICAgICAgaWYgdmFsdWUgIT0gTm9uZToKKyAgICAg
ICAgY291bnQgPSBpbnQodmFsdWUpCisgICAgICBpZiBpc19xdWVyeToKKyAgICAgICAgaWYgY291
bnQgPCAyOgorICAgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQp
CisgICAgICBlbHNlOgorICAgICAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgY291bnQgPSBjb3VudCArIDEKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gu
cHV0KHRva2VuLCBjb3VudCkKKworICAgIGlmIGlzX3JldmFsaWRhdGlvbiBpcyBub3QgTm9uZToK
KyAgICAgIHRpbWUuc2xlZXAoNSk7CisKKyAgICBpZiBpc19xdWVyeToKKyAgICAgIGhlYWRlcnMg
PSBbKCJDb3VudCIsIGNvdW50KSwgKCJUZXN0Iiwgc3RyKHJlcXVlc3QucmF3X2hlYWRlcnMpKV0K
KyAgICAgIGNvbnRlbnQgPSAiIgorICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgY29udGVudAor
ICAgIGVsc2U6CisgICAgICB1bmlxdWVfaWQgPSBpZF90b2tlbigpCisgICAgICBoZWFkZXJzID0g
WygiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpLAorICAgICAgICAgICAgICAgICAoIkNhY2hl
LUNvbnRyb2wiLCAicHJpdmF0ZSwgbWF4LWFnZT0wLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPTYw
IiksCisgICAgICAgICAgICAgICAgICgiRVRhZyIsICcic3dyIicpLAorICAgICAgICAgICAgICAg
ICAoIlVuaXF1ZS1JZCIsIHVuaXF1ZV9pZCldCisgICAgICBjb250ZW50ID0gIjxib2R5Pnt9PC9i
b2R5PiIuZm9ybWF0KHVuaXF1ZV9pZCkKKyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRl
bnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387317</attachid>
            <date>2020-01-10 00:01:42 -0800</date>
            <delta_ts>2020-01-23 02:30:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200110090140.patch</filename>
            <type>text/plain</type>
            <size>30130</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTllNzg2ZGU2MDVjMmM0
NDcyZWFhZGZhODU5YzIwNmE5NjgyY2QxNy4uN2MzNjlkODMwYjc0Y2UzNjQ5OTUzNmVjNDI0OTBi
NWU3NWMwOTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTA4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIEludHJvZHVjZSBKU0FycmF5SXRlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDEwMTE3ODk1OWM4
Zjk3ZThmNjgzZmUwN2E5MTQ4ZDU2Mjk1MjNiYi4uOTk0NjAzNWVlNDkzYTUzYTAzOTE1MGNjMjg1
NjA0MmQwNGU5Y2Q0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMC0wMS0wOSAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUg
Zm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWVzc2FnZSBmb3IgYnJvd3Np
bmcgY29udGV4dCByZW1vdmFsLiBXaGVuIHRoZSBtZXNzYWdlIGhhcHBlbnMsCisgICAgICAgIHBh
c3MgaXQgZG93biB0byB0aGUgbmV0d29yayBjYWNoZSB0byByZW1vdmUgYW55IHBlbmRpbmcKKyAg
ICAgICAgYXN5bmMgcmV2YWxpZGF0aW9ucyBmb3IgdGhhdCBwYWdlLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVt
b3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkFzeW5jUmV2YWxpZGF0aW9u
OjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6c3RhcnRBc3luY1JldmFsaWRh
dGlvbklmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6YnJv
d3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RDo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1lSURIYXNoOjpoYXNoKToKKyAgICAgICAgKFdU
Rjo6R2xvYmFsRnJhbWVJREhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmVtcHR5VmFsdWUpOgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6
Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZDo6Y2FuY2VsKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YnJvd3NpbmdDb250ZXh0UmVt
b3ZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6
CisKIDIwMjAtMDEtMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBp
biBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5k
ZXggNTBiYWM2NzZlY2UwOTRmYWExOGY3OWUyYmE2OWVlZTc0Mzc2YTYzZS4uNTA1MDcwZWMyOWIx
ZmI4MjIyMzJmZjQ1ZGU1NmJkOTFjMTM5OWJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wMS0wOSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2
YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUHJvdmlkZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6
CisKIDIwMjAtMDEtMDcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjI0ODczNCk6IGRpZmZlcmVudCB0aHJlYWRzIHdyaXRlIG1fc3RvcmFn
ZU1hcCBvZiBTdG9yYWdlQXJlYUltcGwgYXQgdGhlIHNhbWUgdGltZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYTEyODU4NTFmMjU5ZDgyYTYzYTg2ZGU1OGM1M2RlM2Uz
YjAyZDkxNC4uNzhjNTIzNWRlOWIxODBmZjJjMjgyMWRlOThkMmNjMGE2YzIxODA5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xODQxLDYgKzE4NDEsOCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyhDbGVhclByb3Zpc2lvbmFsSXRlbVBvbGljeSBj
bGVhclByb3Zpc2lvbmFsSXRlbQogICAgICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIt
PnN0b3BMb2FkaW5nKCk7CiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIG1fZG9j
dW1lbnRMb2FkZXItPnN0b3BMb2FkaW5nKCk7CisgICAgaWYgKG1fZnJhbWUucGFnZSgpICYmICFt
X2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuaXNTVkdJbWFnZUNocm9tZUNsaWVudCgp
KQorICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+YnJvd3Np
bmdDb250ZXh0UmVtb3ZlZChmcmFtZSgpKTsKIAogICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAic3RvcEFsbExvYWRlcnM6IENsZWFyaW5nIHBy
b3Zpc2lvbmFsIGRvY3VtZW50IGxvYWRlciAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyPSVw
KSIsIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSk7CiAgICAgc2V0UHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0
ZWd5LmgKaW5kZXggMDY0NGZlYzUwOWU2MGY3YTRjZjU5YTM1MmYzMjMzNWMyZDE2NGQ5OS4uNTc5
ZDkwMzhmMzE3ZDQ1ZDI3Yzg0YTI3ZTNmMjFjZmYwYWU4ZmRkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNvdXJjZSYsIFJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlKFJlc291cmNlTG9hZGVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKFJlc291cmNlTG9hZGVyJiwgYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzNkOGUzNWRk
ZjJiMjE1ZTVhYzdlOTFiYTk0NDUxNmRhYTYwODJiYy4uODVkYmQzNWE0YWRmNmEwYjIxYTU2YTE0
OTA0OTMyMzNhZmVjMGUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMTY5LDYgKzExNjksMTMgQEAgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
ZGV0ZXJtaW5lUmV2YWxpZGEKICAgICAgICAgcmV0dXJuIFJlbG9hZDsKICAgICB9CiAKKyAgICAv
LyBEb24ndCByZXVzZSByZXNvdXJjZXMgd2l0aCBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4KKyAg
ICBpZiAoZXhpc3RpbmdSZXNvdXJjZS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xTdGFsZVdoaWxl
UmV2YWxpZGF0ZSgpKSB7CisgICAgICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5IHJlbG9hZGluZyBkdWUgdG8g
Q2FjaGUtY29udHJvbDogbm8tc3RvcmUuIik7CisgICAgICAgIGxvZ01lbW9yeUNhY2hlUmVzb3Vy
Y2VSZXF1ZXN0KGZyYW1lKCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtl
eSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVudXNlZFJlYXNvbk5vU3RvcmVLZXkoKSk7Cisg
ICAgICAgIHJldHVybiBSZWxvYWQ7CisgICAgfQorCiAgICAgLy8gSWYgY3JlZGVudGlhbHMgd2Vy
ZSBzZW50IHdpdGggdGhlIHByZXZpb3VzIHJlcXVlc3QgYW5kIHdvbid0IGJlCiAgICAgLy8gd2l0
aCB0aGlzIG9uZSwgb3IgdmljZSB2ZXJzYSwgcmUtZmV0Y2ggdGhlIHJlc291cmNlLgogICAgIC8v
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDJiNjA3ODk2YzlmNWEyNTZkMjY4ZTA4
NWMwODA5YmE4NjJlM2RlYTQuLjk3M2Q2YzgzNDRhYzUyZWQ1ODg5MGEyOTkwYzljNDQ4NjFjMWEz
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00ODUsNiArNDg1LDE0IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCkKICAgICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdG
b3JQYWdlKHdlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdl
UHJveHlJRCwgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgd2ViRnJh
bWVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKCkpKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IHNlc3Np
b24tPmNhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCh3
ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEKTsKKyAgICB9Cit9CisKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYg
aG9zdG5hbWUpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cHJlZmV0Y2hETlMoaG9zdG5hbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDBlNmU4MjMyYjcyYWE4NzkyMmRhODgwZDJm
YzJmZGU4ODQxMmY3NGIuLmI1YjRmNjdjM2VmMTZhZTY5ZDgxOGNlYTMyOWY0NDcwMmRmNDVlZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29u
c3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzdGFydERvd25sb2FkKERvd25sb2FkSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
TmFtZSA9IHsgfSk7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
dWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGIwZGFh
M2MzZjA4NTMxYzk5MTk1NWM5MTljMmMzZDM0NjNhMmQyNjQuLjlkYmJhMGFiNDNmZjAyNzY3YjU3
OGU4Yjk1YzIwNTE4N2U0OWI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJl
bW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAg
UGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQorICAg
IEJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0
bmFtZSkKICAgICBQcmVjb25uZWN0VG8oT3B0aW9uYWw8dWludDY0X3Q+IHByZWNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCA0ZGEwNGFkZDJmZDIyZDU1MTQ0NDA1OWRmNWYzMjEyYWE5YWI1ZGZlLi4y
MjJlODlmZGRiNmI1ZjFjNWZjZmM1OWZmOTM4OTQ1OTExODc1MTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDQsNyArNDQsNiBA
QAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFw
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1Jl
dmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5j
UmV2YWxpZGF0aW9uLmNwcAppbmRleCAyMTAzNWI1YmE2Y2FkMDcwNDMyYTBkMTBkYzdkNmZiZGMz
YTk2MjVhLi5kNmIxNzc0MTZiYzAzYjUxMTA3Y2IwZTI5ZGU3Mjk4MTQ4YzliMGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxp
ZGF0aW9uLmNwcApAQCAtNTQsNiArNTQsMTIgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgY29uc3RydWN0UmV2YWxpZGF0aW9uUmVxdWVzdChjb25zdCBLZXkmIGsKICAg
ICByZXR1cm4gcmV2YWxpZGF0aW9uUmVxdWVzdDsKIH0KIAordm9pZCBBc3luY1JldmFsaWRhdGlv
bjo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9sb2FkKQorICAgICAgICBtX2xvYWQtPmNhbmNlbCgp
OworfQorCiB2b2lkIEFzeW5jUmV2YWxpZGF0aW9uOjpzdGFsZVdoaWxlUmV2YWxpZGF0ZUVuZGlu
ZygpCiB7CiAgICAgaWYgKG1fY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKaW5kZXggM2Rk
NjA4ZDBlMDUzYmE4MzIxNmRlNDk0ZTIzMWYwNDdkMjQ0MzJlNC4uNzhiYmRmMTVjZGE1ZDkwMzEx
OTk4NmM0YmU5Mzc1MzlmMTk2YmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaApAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihD
YWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3Qg
U3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
aW5kZXggYmY2NGFjYWJlYmQ3MDU1NWY1OThiMTMzMTIxOGZjMTU1YTE0YzYzOC4uODQwNjRjYmE0
MTg1YzMxODQxMDFmNjNmMjY5M2Y2NGE2Y2FkZWE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTks
MzIgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZh
bGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBl
bnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3lu
Y1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVu
dHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAg
ICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5l
bnN1cmUoZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxLZXk+KCk7Cisg
ICAgICAgIH0pOworICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChrZXkp
OworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZy
YW1lSUQsIHJlcXVlc3QsIFdURk1vdmUoZW50cnkpLCBbdGhpcywgZnJhbWVJRCwga2V5XShBc3lu
Y1JldmFsaWRhdGlvbjo6UmVzdWx0IHJlc3VsdCkgewogICAgICAgICAgICAgbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOworICAgICAgICAgICAgYXV0byBrZXlzID0gbV9w
ZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2UuZ2V0KGZyYW1lSUQpOworICAgICAgICAgICAg
a2V5cy5yZW1vdmVGaXJzdChrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihO
ZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRo
IHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8
aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAjZW5kaWYKIAordm9pZCBD
YWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBhdXRvIGtleXMgPSBtX3BlbmRpbmdBc3luY1Jl
dmFsaWRhdGlvbkJ5UGFnZS50YWtlKHsgd2ViUGFnZVByb3h5SUQsIHdlYlBhZ2VJRCwgd2ViRnJh
bWVJRCB9KTsKKyAgICBmb3IgKGF1dG8ga2V5IDoga2V5cykgeworICAgICAgICBhdXRvIHJldmFs
aWRhdGlvbiA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9ucy5nZXQoa2V5KTsKKyAgICAgICAg
aWYgKHJldmFsaWRhdGlvbikKKyAgICAgICAgICAgIHJldmFsaWRhdGlvbi0+Y2FuY2VsKCk7Cisg
ICAgfQorI2VuZGlmCit9CisKIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgUmV0
cmlldmVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCA3OWUxZjVk
Yzk1ZDdkMjYwZTliZDk4NjEyNjhkYTExMzYwNDIwYjA5Li41ODY1MGQ4MTg2YmJiY2RjMzg3ODNm
MGM4MWU1NjNiNzM1N2YwZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTQ0LDYgKzQ0LDU4IEBAIGNsYXNzIFJlc291cmNl
UmVxdWVzdDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIH0KIAorbmFtZXNwYWNlIFdlYktpdCB7Citu
YW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSUQgeworICAgIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
OworCisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OworfTsKKworaW5saW5lIHVuc2lnbmVkIEds
b2JhbEZyYW1lSUQ6Omhhc2goKSBjb25zdAoreworICAgIHVuc2lnbmVkIGhhc2hlc1syXTsKKyAg
ICBoYXNoZXNbMF0gPSBXVEY6OmludEhhc2god2ViUGFnZUlELnRvVUludDY0KCkpOworICAgIGhh
c2hlc1sxXSA9IFdURjo6aW50SGFzaChmcmFtZUlELnRvVUludDY0KCkpOworCisgICAgcmV0dXJu
IFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShoYXNoZXMsIHNpemVvZihoYXNoZXMpKTsKK30KKwor
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9iYWxGcmFtZUlEJiBhLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiBiKQoreworICAgIC8vIE5vIG5lZWQgdG8gY2hlY2sgd2ViUGFnZVByb3h5SUQg
c2luY2Ugd2ViUGFnZUlEcyBhcmUgZ2xvYmFsbHkgdW5pcXVlIGFuZCBhIGdpdmVuIFdlYlBhZ2Ug
aXMgYWx3YXlzCisgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIFdlYlBhZ2VQcm94eS4K
KyAgICByZXR1cm4gYS53ZWJQYWdlSUQgPT0gYi53ZWJQYWdlSUQgJiYgIGEuZnJhbWVJRCA9PSBi
LmZyYW1lSUQ7Cit9CisKK307Cit9OworCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IEdsb2Jh
bEZyYW1lSURIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9Cisg
ICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7
IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRz
PFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRz
PFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7CisgICAgc3RhdGljIFdlYktp
dDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07
IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmpl
Y3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFs
dWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0
dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50
NjRfdD46Om1heCgpOyB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4geworICAgIHR5cGVkZWYgR2xvYmFsRnJh
bWVJREhhc2ggSGFzaDsKK307CisKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5l
dHdvcmtQcm9jZXNzOwpAQCAtOTAsMzAgKzE0Miw2IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24g
ewogICAgIE5vRHVlVG9FeHBpcmVkUmVkaXJlY3QKIH07CiAKLXN0cnVjdCBHbG9iYWxGcmFtZUlE
IHsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEOwotICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRDsKLSAgICAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Ci19OwotCi1pbmxp
bmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQg
aGFzaGVzWzJdOwotICAgIGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50
NjQoKSk7Ci0gICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7
Ci0KLSAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhh
c2hlcykpOwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQm
IGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBjaGVjayB3
ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEg
Z2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUg
V2ViUGFnZVByb3h5LgotICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAg
YS5mcmFtZUlEID09IGIuZnJhbWVJRDsKLX0KLQogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVp
bnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJj
ZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8g
cmVhZCB0aW1lb3V0cy4KICAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKQEAgLTE3Myw2ICsyMDEs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBz
dGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgog
CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworCiAg
ICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJv
Y2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZURpcmVjdG9yeTsgfQpAQCAtMTk5LDYgKzIy
OSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI+IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlcjsKIAogICAgIEhhc2hNYXA8S2V5LCBzdGQ6OnVu
aXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnM7
CisgICAgSGFzaE1hcDxHbG9iYWxGcmFtZUlELCBWZWN0b3I8S2V5Pj4gbV9wZW5kaW5nQXN5bmNS
ZXZhbGlkYXRpb25CeVBhZ2U7CiAjZW5kaWYKIAogICAgIHVuc2lnbmVkIG1fdHJhdmVyc2VDb3Vu
dCB7IDAgfTsKQEAgLTIwOCwyNSArMjM5LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2Ug
TmV0d29ya0NhY2hlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0K
LXN0cnVjdCBHbG9iYWxGcmFtZUlESGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGtleSkgeyByZXR1cm4ga2V5
Lmhhc2goKTsgfQotICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEJiBhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFs
RnJhbWVJRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gOiBHZW5l
cmljSGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gewotICAg
IHN0YXRpYyBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBlbXB0eVZhbHVlKCkg
eyByZXR1cm4geyB9OyB9Ci0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgc2xvdC53ZWJQYWdl
SUQgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+KHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7IH0KLQotICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
JiBzbG90KSB7IHJldHVybiBzbG90LndlYlBhZ2VJRC50b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKLSAgICB0eXBl
ZGVmIEdsb2JhbEZyYW1lSURIYXNoIEhhc2g7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1
bGF0aXZlTG9hZC5jcHAKaW5kZXggMzY1YTYzMWMyZDM2MGZhNmZiMDViYThhN2VlZjZlMzU5Y2Rh
YTVlYS4uNTExMDQ3MmIwYjY0NjAxNzRkOGFmMmQ3MjQzMzM1NGU1MWRiMmQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtNjcsNiArNjcsMTIgQEAgU3BlY3VsYXRp
dmVMb2FkOjp+U3BlY3VsYXRpdmVMb2FkKCkKICAgICBBU1NFUlQoIW1fbmV0d29ya0xvYWQpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlTG9hZDo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9uZXR3b3Jr
TG9hZCkKKyAgICAgICAgbV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgU3BlY3Vs
YXRpdmVMb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSYmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgTE9HKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
UHJlbG9hZGluZywgIlNwZWN1bGF0aXZlIHJlZGlyZWN0ICVzIC0+ICVzIiwgcmVxdWVzdC51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZWRpcmVjdFJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaAppbmRleCA5MjY0
YmIxNzM4MDczYzA4N2ZhMDNjYThhYTNhODRhNTQ2Zjk2NGMxLi5mOThiNTY0ODUyYWY5NDA1NmY0
OWI1ZTE0ZWY3OGRiOTVmNWRlMmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgK
QEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX29yaWdpbmFsUmVxdWVz
dDsgfQogCisgICAgdm9pZCBjYW5jZWwoKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9h
ZENsaWVudC4KICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1Nl
bnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRlIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCmluZGV4IDExZDQ5ODk5YzRmYjRmZWI1NDJlZGZhN2ZkZmM1NzZjOThjOGE5N2Iu
LjdmNzYwMWZkMTI4N2IyOGNkZjQxZDYzMTlmYmVlYWRhNzQ0ZWIwYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
QEAgLTYwNiw2ICs2MDYsMTMgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cGFnZUxvYWRDb21w
bGV0ZWQoUGFnZSYgcGFnZSkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBhZ2VMb2FkQ29tcGxldGVkKFdlYlBhZ2U6OmZyb21D
b3JlUGFnZShwYWdlKS5pZGVudGlmaWVyKCkpLCAwKTsKIH0KIAordm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYgZnJhbWUpCit7CisgICAgQVNTRVJU
KGZyYW1lLnBhZ2UoKSk7CisgICAgYXV0byYgcGFnZSA9IFdlYlBhZ2U6OmZyb21Db3JlUGFnZSgq
ZnJhbWUucGFnZSgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJyb3dzaW5nQ29udGV4dFJlbW92ZWQocGFnZS53ZWJQYWdl
UHJveHlJZGVudGlmaWVyKCksIHBhZ2UuaWRlbnRpZmllcigpLCBXZWJGcmFtZTo6ZnJvbUNvcmVG
cmFtZShmcmFtZSktPmZyYW1lSUQoKSksIDApOworfQorCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJh
dGVMb2FkSWRlbnRpZmllcigpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmgKaW5kZXggOWE3OGE1ZmUyNGRhNzhiMzRlYmVmYTc4NWEwN2I1MDQ5YmE0NzNiYS4u
MjJmNjQ0ZmQ3ZjQ1MGQzMmVhNDVmOTdlMjc0ODhlZjVmMzRjMTUzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC01
NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFt
ZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAg
ICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwg
dW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpIGZpbmFsOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFn
ZSYpIGZpbmFsOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJDb3JlOjpGcmFt
ZSYpIGZpbmFsOwogCiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKSBm
aW5hbDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIm
LCBib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBiZDBjYTM2
ZjhhZGI2YzY2YmZhMDM3YjA1MTU5YmE0NWNiNTBjNTI4Li40YThlMWQ3ZGU2MGIxMmEwMzE2OWE3
MGRlMzk1NmM1ZWEzMDRmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0x
MTUsNiArMTE1LDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdlTG9hZENv
bXBsZXRlZChQYWdlJikKIHsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmJy
b3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmKQoreworfQorCiB2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkKEZyYW1lJiBmcmFtZSwgTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyOjpjcmVhdGUoZnJhbWUsIGNsaWVudCwgV1RGTW92ZShyZXF1ZXN0
KSwgW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChSZWZQdHI8V2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+JiYgbG9hZGVyKSBt
dXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDhlYzhhNDk0YmNhMmIwZDU3
MTM1NWEzYzNlNmZkYjUyNWFkNmI4NGQuLjc1NmEwMDNhMWQ4ODRmMDU0YzM5YTUwOGE4M2ZkYjgz
MzU0OTQyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJD
b3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNDcsNiArNDcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRp
YWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYpIGZpbmFsOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0
ZWQoV2ViQ29yZTo6UGFnZSYpIGZpbmFsOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXImLCBib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDdkMGI3MTE0MzllZTM0YmY1YjIyYTA1MDI4Mzk2YmVlNjFmMDczOTkuLmM2ZWVkNzM1
YjExOGE3ZWQ5ZjMxMjU1N2NmNWI5YjI2YjQwZDA5NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTA5ICBSb2IgQnVpcyAgPHJidWlzQGln
YWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdCB0byB2ZXJpZnkgdGhhdCBmcmFtZSByZW1vdmFsIHRy
aWdnZXJzIHJldmFsaWRhdGlvbiBjYW5jZWxsYXRpb24uCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxl
LXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMv
c3RhbGUtZnJhbWUucHk6IEFkZGVkLgorICAgICAgICAoaWRfdG9rZW4pOgorICAgICAgICAobWFp
bik6CisKIDIwMjAtMDEtMDggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgogCiAgICAgICAgIENsZWFuIHVwIHdlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzRlYjYw
NTM2YzY1MzQxOGQ5M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGls
ZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
ICAKKworUEFTUyBGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxl
LXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWYzNGVmODFmZDA1
NGQxODYyOTk1YThjYmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFs
aWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhhdCBmcmFtZSByZW1vdmFs
IGNhbmNlbHMgaXRzIHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMu
anMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CisgIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3QgdXJsID0gYHJlc291cmNl
cy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgorCisgIC8vIGZpcnN0IGZy
YW1lIGxvYWQKKyAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgIGZyYW1lLnNyYyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAgIC8vIHNl
Y29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAgICBsZXQgZnJhbWUyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJhbWUyLnNyYyA9IHVybDsK
KyAgICBmcmFtZTIub25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVtb3ZlIGZyYW1lLCBjYW5j
ZWxpbmcgcmV2YWxpZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7CisgICAgICAvLyB0aGly
ZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisgICAgICBsZXQgZnJhbWUz
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBmcmFtZTMuc3JjID0g
dXJsOworICAgICAgZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAgZmV0Y2goInJlc291
cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVzdF90b2tlbikudGhlbih0
LnN0ZXBfZnVuYygocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3Bv
bnNlLmhlYWRlcnMuZ2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KSk7CisgICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1l
Myk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUyKTsKKyAgfQor
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdGcmFtZSByZW1vdmFsIHNo
b3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFiODEwZjFj
ZmUzZDZkODNjN2FlYmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAsMCArMSwzOCBAQAoraW1w
b3J0IHJhbmRvbSwgc3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYgaWRfdG9rZW4oKToKKyAg
IGxldHRlcnMgPSBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1cm4gJycuam9pbihyYW5k
b20uY2hvaWNlKGxldHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKworZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVlc3QuaGVhZGVycy5nZXQo
IklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoInRv
a2VuIiwgTm9uZSkKKyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZpcnN0KCJxdWVyeSIsIE5v
bmUpICE9IE5vbmUKKyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNoLmxvY2s6CisgICAgICB2
YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICBjb3VudCA9IDAK
KyAgICAgIGlmIHZhbHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0gaW50KHZhbHVlKQorICAg
ICAgaWYgaXNfcXVlcnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAgICAgICAgICByZXF1ZXN0
LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxzZToKKyAgICAgICAgaWYg
aXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNvdW50ID0gY291bnQgKyAx
CisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisKKyAgICBp
ZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1lLnNsZWVwKDUpOworCisg
ICAgaWYgaXNfcXVlcnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQiLCBjb3VudCksICgiVGVz
dCIsIHN0cihyZXF1ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250ZW50ID0gIiIKKyAgICAg
IHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgorICAgICAgdW5pcXVlX2lk
ID0gaWRfdG9rZW4oKQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0
bWwiKSwKKyAgICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgInByaXZhdGUsIG1heC1h
Z2U9MCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAgICAgICAgICAgICAoIkVU
YWciLCAnInN3ciInKSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUtSWQiLCB1bmlxdWVfaWQp
XQorICAgICAgY29udGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1hdCh1bmlxdWVfaWQpCisg
ICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388529</attachid>
            <date>2020-01-23 02:30:58 -0800</date>
            <delta_ts>2020-01-23 05:29:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200123113056.patch</filename>
            <type>text/plain</type>
            <size>30430</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczMjMzNWVjZjIwODQ5
Y2MyZWIxYjNkNmQwMDdhNWQ2ZGM5ZjBiYi4uOGZhNGJlM2QwODI0NmZhYzUzYTNiNjk2YmQxMGRm
OTNkZTVhMGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTIzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtXaW5DYWlyb10gU29tZSBvZiBjb21iaW5pbmcgZmFtaWx5IGdseXBocyBhcmUgcmVwbGFj
ZWQgYnkgc3BhY2UgZ2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkYjk5ODYwYjc5ZGVjMDUxN2RlNzgxZWIz
YzRmNjFjMWRkZTBmYzEuLjY3NmE4MTUzN2IzYWY4MDMyMzQxODRkNmYxMWY1NDliYmY1ZDFmMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGls
ZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG1lc3NhZ2UgZm9yIGJyb3dzaW5nIGNvbnRleHQgcmVt
b3ZhbC4gV2hlbiB0aGUgbWVzc2FnZSBoYXBwZW5zLAorICAgICAgICBwYXNzIGl0IGRvd24gdG8g
dGhlIG5ldHdvcmsgY2FjaGUgdG8gcmVtb3ZlIGFueSBwZW5kaW5nCisgICAgICAgIGFzeW5jIHJl
dmFsaWRhdGlvbnMgZm9yIHRoYXQgcGFnZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpBc3luY1JldmFsaWRhdGlvbjo6Y2FuY2VsKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmJyb3dzaW5nQ29udGV4dFJl
bW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ6Omhhc2ggY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1l
SURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmNvbnN0cnVjdERlbGV0
ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorCiAyMDIwLTAxLTIy
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIHBy
b2Nlc3NdIFBpcGUgbW9yZSBNZWRpYVBsYXllclByaXZhdGUgYW5kIGNsaWVudCBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDQ4NmMwMTQ1YjcwMjhhNTBhZjU4MjA0YjZjYTMyMjMyOTAy
ODBjMzkuLjViNmExN2ZmMDYxNzg1NDA4MzY1ZDk1ZWU2OTFhMTkyOGQ3YzhlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1
aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13
aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgZW1wdHkgc3R1YiBmb3IgbmV3IG1ldGhvZCBv
biBMb2FkZXJTdHJhdGVneS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmJy
b3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1YXJkcyBhbmQgY2xl
YW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBXZWJLaXQsIFRvb2xz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBhMTI4NTg1MWYyNTlkODJh
NjNhODZkZTU4YzUzZGUzZTNiMDJkOTE0Li43OGM1MjM1ZGU5YjE4MGZmMmMyODIxZGU5OGQyY2Mw
YTZjMjE4MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4NDEs
NiArMTg0MSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlz
aW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtCiAgICAgICAgIG1fcHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudExvYWRl
cikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKKyAgICBpZiAobV9m
cmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pc1NWR0lt
YWdlQ2hyb21lQ2xpZW50KCkpCisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKGZyYW1lKCkpOwogCiAgICAgRlJBTUVM
T0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJzdG9wQWxsTG9h
ZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyIChtX3Byb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXI9JXApIiwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdldCgpKTsK
ICAgICBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAwNjQ0ZmVjNTA5ZTYwZjdhNGNmNTlhMzUyZjMy
MzM1YzJkMTY0ZDk5Li41NzlkOTAzOGYzMTdkNDVkMjdjODRhMjdlM2YyMWNmZjBhZThmZGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNTksNiArNTksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZShGcmFtZSYsIENhY2hlZFJlc291
cmNlJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVy
JiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBjb25zdCBIVFRQSGVhZGVy
TWFwJiwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRh
dGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBib29sKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAppbmRleCBjM2Q4ZTM1ZGRmMmIyMTVlNWFjN2U5MWJhOTQ0NTE2ZGFhNjA4MmJjLi44NWRiZDM1
YTRhZGY2YTBiMjFhNTZhMTQ5MDQ5MzIzM2FmZWMwZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTExNjksNiAr
MTE2OSwxMyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgICAgICByZXR1cm4gUmVsb2Fk
OwogICAgIH0KIAorICAgIC8vIERvbid0IHJldXNlIHJlc291cmNlcyB3aXRoIENhY2hlLWNvbnRy
b2w6IG5vLXN0b3JlLgorICAgIGlmIChleGlzdGluZ1Jlc291cmNlLT5yZXNwb25zZSgpLmNhY2hl
Q29udHJvbFN0YWxlV2hpbGVSZXZhbGlkYXRlKCkpIHsKKyAgICAgICAgTE9HKFJlc291cmNlTG9h
ZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kg
cmVsb2FkaW5nIGR1ZSB0byBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4iKTsKKyAgICAgICAgbG9n
TWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojppbk1lbW9yeUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dW51c2VkUmVhc29u
Tm9TdG9yZUtleSgpKTsKKyAgICAgICAgcmV0dXJuIFJlbG9hZDsKKyAgICB9CisKICAgICAvLyBJ
ZiBjcmVkZW50aWFscyB3ZXJlIHNlbnQgd2l0aCB0aGUgcHJldmlvdXMgcmVxdWVzdCBhbmQgd29u
J3QgYmUKICAgICAvLyB3aXRoIHRoaXMgb25lLCBvciB2aWNlIHZlcnNhLCByZS1mZXRjaCB0aGUg
cmVzb3VyY2UuCiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTdiYzE0
MGUzNzU5ZTBjMWEzZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5MjdmZjExMDk5NzhkOGMyODc2
ZmFlYmI4OGUzMGM2ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5
Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxv
YWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1l
SWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5icm93c2lu
Z0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1lSUQpOwor
ICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hE
TlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVm
ZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2Q0OTljMTNm
OTJhZWJiNjE4MzExNGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2ZiYjk0ZGRiZjBlZmMxMGZl
ZWU4OTg2Yjc1MTU5ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTk1LDYgKzE5
NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNl
TG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93
bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93
bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzkyMThhOTgzY2Q2NS4uNjAx
ODZmNWRlNjlkOTU3MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2Fk
UGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBh
cmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2Fk
SWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJlZmV0
Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1aW50NjRf
dD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDJlMzQ5ZjEwZGEzMWI3MThjOTRmMzlkMjc1
MWZjOWQyOTZmNDBiYzkuLmY5OGYyZDVkMDA1YjQzZjEwOTZjMDYwMzZkZjdkZGJlOWQ5YjIxNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3ZmVmNWE4
MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5ZDdhNTBl
MTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
QXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0aWMgaW5s
aW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0
KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQogCit2b2lk
IEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisgICAgICAg
IG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0YWxlV2hp
bGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQxMjliLi4w
ZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRl
ICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFzeW5jUmV2
YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihDYWNoZSYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3QgU3BlY3Vs
YXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXgg
NDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4uYjYyZWM1OWYwZTQ0ZDg5
NzAwMjc4YzgxODY2NzVlODkxZDJiYmY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTksMjggQEAg
c3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRp
b25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFs
aWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5
bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwg
W3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5lbnN1cmUo
ZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5jUmV2YWxp
ZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24gPSBtYWtl
VW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92
ZShlbnRyeSksIFsmLCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7CiAg
ICAgICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtleSk7CiAgICAg
ICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBBc3luYyByZXZhbGlk
YXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50aWZpZXIo
KS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAgICAgICB9KTsK
KyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoKnJldmFsaWRhdGlvbik7Cisg
ICAgICAgIHJldHVybiByZXZhbGlkYXRpb247CiAgICAgfSk7CiB9CiAjZW5kaWYKIAordm9pZCBD
YWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBhdXRvIGxvYWRlcnMgPSBtX3BlbmRpbmdBc3lu
Y1JldmFsaWRhdGlvbkJ5UGFnZS50YWtlKHsgd2ViUGFnZVByb3h5SUQsIHdlYlBhZ2VJRCwgd2Vi
RnJhbWVJRCB9KTsKKyAgICBmb3IgKGF1dG8mIGxvYWRlciA6IGxvYWRlcnMpCisgICAgICAgIGxv
YWRlci5jYW5jZWwoKTsKKyNlbmRpZgorfQorCiB2b2lkIENhY2hlOjpyZXRyaWV2ZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZy
YW1lSUQsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQocmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5k
ZXggY2NmYzk4YTM2MzBhZmUyZTY0YmI1OWNjNDY5YTFmNzA2YWY2MDFhZS4uNjA3ZTk0NjE2YmI5
NGU2MjhkMzMwYTE2MDRjZWIyYzNlMmQ4OWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC00NCw2ICs0NCw1OCBAQCBjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKK25hbWVzcGFjZSBX
ZWJLaXQgeworbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CisKK3N0cnVjdCBHbG9iYWxGcmFtZUlE
IHsKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEOworICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRDsKKworICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsKK307CisKK2lubGluZSB1
bnNpZ25lZCBHbG9iYWxGcmFtZUlEOjpoYXNoKCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBoYXNo
ZXNbMl07CisgICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKHdlYlBhZ2VJRC50b1VJbnQ2NCgp
KTsKKyAgICBoYXNoZXNbMV0gPSBXVEY6OmludEhhc2goZnJhbWVJRC50b1VJbnQ2NCgpKTsKKwor
ICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVz
KSk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR2xvYmFsRnJhbWVJRCYgYSwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgYikKK3sKKyAgICAvLyBObyBuZWVkIHRvIGNoZWNrIHdlYlBh
Z2VQcm94eUlEIHNpbmNlIHdlYlBhZ2VJRHMgYXJlIGdsb2JhbGx5IHVuaXF1ZSBhbmQgYSBnaXZl
biBXZWJQYWdlIGlzIGFsd2F5cworICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBXZWJQ
YWdlUHJveHkuCisgICAgcmV0dXJuIGEud2ViUGFnZUlEID09IGIud2ViUGFnZUlEICYmICBhLmZy
YW1lSUQgPT0gYi5mcmFtZUlEOworfQorCit9OworfTsKKworbmFtZXNwYWNlIFdURiB7CisKK3N0
cnVjdCBHbG9iYWxGcmFtZUlESGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGtleSkgeyByZXR1cm4ga2V5Lmhh
c2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hl
OjpHbG9iYWxGcmFtZUlEJiBhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJh
bWVJRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gOiBHZW5lcmlj
SGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4geworICAgIHN0
YXRpYyBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBlbXB0eVZhbHVlKCkgeyBy
ZXR1cm4geyB9OyB9CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgc2xvdC53ZWJQYWdlSUQg
PSBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7IH0KKworICAgIHN0YXRpYyBib29sIGlz
RGVsZXRlZFZhbHVlKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBz
bG90KSB7IHJldHVybiBzbG90LndlYlBhZ2VJRC50b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKKyAgICB0eXBlZGVm
IEdsb2JhbEZyYW1lSURIYXNoIEhhc2g7Cit9OworCit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBOZXR3b3JrUHJvY2VzczsKQEAgLTkwLDMwICsxNDIsNiBAQCBlbnVtIGNsYXNzIFVz
ZURlY2lzaW9uIHsKICAgICBOb0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9OwogCi1zdHJ1Y3QgR2xv
YmFsRnJhbWVJRCB7Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRDsK
LSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7Ci0gICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQ7Ci0gICAgCi0gICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0Owot
fTsKLQotaW5saW5lIHVuc2lnbmVkIEdsb2JhbEZyYW1lSUQ6Omhhc2goKSBjb25zdAotewotICAg
IHVuc2lnbmVkIGhhc2hlc1syXTsKLSAgICBoYXNoZXNbMF0gPSBXVEY6OmludEhhc2god2ViUGFn
ZUlELnRvVUludDY0KCkpOwotICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChmcmFtZUlELnRv
VUludDY0KCkpOwotCi0gICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShoYXNoZXMs
IHNpemVvZihoYXNoZXMpKTsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9i
YWxGcmFtZUlEJiBhLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBiKQotewotICAgIC8vIE5vIG5lZWQg
dG8gY2hlY2sgd2ViUGFnZVByb3h5SUQgc2luY2Ugd2ViUGFnZUlEcyBhcmUgZ2xvYmFsbHkgdW5p
cXVlIGFuZCBhIGdpdmVuIFdlYlBhZ2UgaXMgYWx3YXlzCi0gICAgLy8gYXNzb2NpYXRlZCB3aXRo
IHRoZSBzYW1lIFdlYlBhZ2VQcm94eS4KLSAgICByZXR1cm4gYS53ZWJQYWdlSUQgPT0gYi53ZWJQ
YWdlSUQgJiYgIGEuZnJhbWVJRCA9PSBiLmZyYW1lSUQ7Ci19Ci0KIGVudW0gY2xhc3MgQ2FjaGVP
cHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1p
bmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENhY2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhl
cmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCiAgICAgVGVzdGluZ01vZGUgPSAxIDw8IDAsCkBAIC0x
NzUsNiArMjAzLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRBc3luY1JldmFsaWRhdGlvbklm
TmVlZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IE5ldHdvcmtDYWNo
ZTo6S2V5Jiwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmLCBjb25zdCBHbG9iYWxGcmFtZUlEJik7
CiAjZW5kaWYKIAorICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKKwogICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1f
bmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0KICAgICBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VEaXJlY3Rvcnk7IH0KQEAg
LTIwMyw2ICsyMzMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1RB
TEVfV0hJTEVfUkVWQUxJREFURSkKICAgICBIYXNoTWFwPEtleSwgc3RkOjp1bmlxdWVfcHRyPEFz
eW5jUmV2YWxpZGF0aW9uPj4gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zOworICAgIEhhc2hN
YXA8R2xvYmFsRnJhbWVJRCwgV1RGOjpXZWFrSGFzaFNldDxBc3luY1JldmFsaWRhdGlvbj4+IG1f
cGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlOwogI2VuZGlmCiAKICAgICB1bnNpZ25lZCBt
X3RyYXZlcnNlQ291bnQgeyAwIH07CkBAIC0yMTIsMjUgKzI0MywzIEBAIHByaXZhdGU6CiAKIH0g
Ly8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVz
cGFjZSBXVEYgewotCi1zdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggewotICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKLX07Ci0KLXRl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQ+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQg
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCi0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0
RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7
IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9Ci0KLSAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9
PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLX07Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
PiB7Ci0gICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOwotfTsKLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDhjMTdlMmQzODVjNThjNWUxNjM5ZjVj
YzBmZGQ5NjUyNjhkYjIzNGYuLjIyYmJmZGIzNDUzZjM2ZjM2YWExZWJkOGFjZDJhODlmMDQzYmM1
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTY3LDYgKzY3LDEy
IEBAIFNwZWN1bGF0aXZlTG9hZDo6flNwZWN1bGF0aXZlTG9hZCgpCiAgICAgQVNTRVJUKCFtX25l
dHdvcmtMb2FkKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCgpCit7CisgICAg
aWYgKG1fbmV0d29ya0xvYWQpCisgICAgICAgIG1fbmV0d29ya0xvYWQtPmNhbmNlbCgpOworfQor
CiB2b2lkIFNwZWN1bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcsICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIs
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2Fk
LmgKaW5kZXggNGYwYmNmODYzYzczMDgzZjMyNmUyNzRlNzQzMzIwMmUzOGRiMGE3OS4uY2VjZDVm
ZmZiNGNjODY3N2Q4NWE3OGU0YjFiNmM4MzNiNzU0OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1
bGF0aXZlTG9hZC5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9v
cmlnaW5hbFJlcXVlc3Q7IH0KIAorICAgIHZvaWQgY2FuY2VsKCk7CisKIHByaXZhdGU6CiAgICAg
Ly8gTmV0d29ya0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25n
IGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBv
dmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBjNDdiODc2NTMzNDI4YmNkMTBjMDUwNTlmMTgz
Yzc3NTVmZGRmNjRkLi44ZDhhZTMxYzVkMzE1MzQ5YWZhODdhNzY4N2JkYTUwNDJhZTIwOTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC02MjksNiArNjI5LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmIHBhZ2UpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQYWdlTG9hZENvbXBsZXRlZChX
ZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSkuaWRlbnRpZmllcigpKSwgMCk7CiB9CiAKK3ZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmIGZyYW1lKQor
eworICAgIEFTU0VSVChmcmFtZS5wYWdlKCkpOworICAgIGF1dG8mIHBhZ2UgPSBXZWJQYWdlOjpm
cm9tQ29yZVBhZ2UoKmZyYW1lLnBhZ2UoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCcm93c2luZ0NvbnRleHRSZW1vdmVk
KHBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBwYWdlLmlkZW50aWZpZXIoKSwgV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpLT5mcmFtZUlEKCkpLCAwKTsKK30KKwogc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBp
ZGVudGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDlhNzhhNWZlMjRkYTc4YjM0ZWJlZmE3ODVhMDdi
NTA0OWJhNDczYmEuLjIyZjY0NGZkN2Y0NTBkMzJlYTQ1Zjk3ZTI3NDg4ZWY1ZjM0YzE1M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2Uo
V2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpG
cmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVk
KFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQo
V2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJl
c291cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAK
aW5kZXggYmQwY2EzNmY4YWRiNmM2NmJmYTAzN2IwNTE1OWJhNDVjYjUwYzUyOC4uNGE4ZTFkN2Rl
NjBiMTJhMDMxNjlhNzBkZTM5NTZjNWVhMzA0ZjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcApAQCAtMTE1LDYgKzExNSwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxl
cjo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJikKK3sKK30KKwogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYg
ZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6
Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdU
Rk1vdmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
PiYmIGxvYWRlcikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ZWM4
YTQ5NGJjYTJiMGQ1NzEzNTVhM2MzZTZmZGI1MjVhZDZiODRkLi43NTZhMDAzYTFkODg0ZjA1NGMz
OWE1MDhhODNmZGI4MzM1NDk0Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1
bnNpZ25lZCBsb25nLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpD
bGllbnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25z
dCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKSBmaW5hbDsKICAgICB2b2lkIHBh
Z2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5n
Q29udGV4dFJlbW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3Zl
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBlM2ZlYzJmMWVlMDc1MDZhNjIwYjJiNzg3ZDhmYjY5MWRiMWEy
MTYyLi42Yjc4YjZmMWRkNTEwM2ZiOTE1MzdhYzZhZjJiMmUzMjk1NTEzZTZlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMS0yMyAgUm9iIEJ1
aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9y
IHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZnJh
bWUgcmVtb3ZhbCB0cmlnZ2VycyByZXZhbGlkYXRpb24gY2FuY2VsbGF0aW9uLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUt
cmVtb3ZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRh
dGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5OiBBZGRlZC4KKyAgICAgICAgKGlkX3Rva2VuKToK
KyAgICAgICAgKG1haW4pOgorCiAyMDIwLTAxLTIyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgRml4IGZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci1vcmlnaW4td29y
a2VyLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYzRlYjYwNTM2YzY1MzQxOGQ5M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorICAKKworUEFTUyBGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRz
IHJldmFsaWRhdGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1v
dmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFlNWYzNGVmODFmZDA1NGQxODYyOTk1YThjYmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0
YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhh
dCBmcmFtZSByZW1vdmFsIGNhbmNlbHMgaXRzIHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3Qg
dXJsID0gYHJlc291cmNlcy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgor
CisgIC8vIGZpcnN0IGZyYW1lIGxvYWQKKyAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgIGZyYW1lLnNyYyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkg
PT4geworICAgIC8vIHNlY29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAg
ICBsZXQgZnJhbWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJh
bWUyLnNyYyA9IHVybDsKKyAgICBmcmFtZTIub25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVt
b3ZlIGZyYW1lLCBjYW5jZWxpbmcgcmV2YWxpZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7
CisgICAgICAvLyB0aGlyZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisg
ICAgICBsZXQgZnJhbWUzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICBmcmFtZTMuc3JjID0gdXJsOworICAgICAgZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAg
ICAgZmV0Y2goInJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVz
dF90b2tlbikudGhlbih0LnN0ZXBfZnVuYygocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KSk7CisgICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGZyYW1lMyk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZnJhbWUyKTsKKyAgfQorICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdG
cmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1m
cmFtZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzFiODEwZjFjZmUzZDZkODNjN2FlYmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAs
MCArMSwzOCBAQAoraW1wb3J0IHJhbmRvbSwgc3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYg
aWRfdG9rZW4oKToKKyAgIGxldHRlcnMgPSBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1
cm4gJycuam9pbihyYW5kb20uY2hvaWNlKGxldHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKwor
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVl
c3QuaGVhZGVycy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVz
dC5HRVQuZmlyc3QoInRva2VuIiwgTm9uZSkKKyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZp
cnN0KCJxdWVyeSIsIE5vbmUpICE9IE5vbmUKKyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNo
LmxvY2s6CisgICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisg
ICAgICBjb3VudCA9IDAKKyAgICAgIGlmIHZhbHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0g
aW50KHZhbHVlKQorICAgICAgaWYgaXNfcXVlcnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAg
ICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxz
ZToKKyAgICAgICAgaWYgaXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNv
dW50ID0gY291bnQgKyAxCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwg
Y291bnQpCisKKyAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1l
LnNsZWVwKDUpOworCisgICAgaWYgaXNfcXVlcnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQi
LCBjb3VudCksICgiVGVzdCIsIHN0cihyZXF1ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250
ZW50ID0gIiIKKyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgor
ICAgICAgdW5pcXVlX2lkID0gaWRfdG9rZW4oKQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L2h0bWwiKSwKKyAgICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwg
InByaXZhdGUsIG1heC1hZ2U9MCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAg
ICAgICAgICAgICAoIkVUYWciLCAnInN3ciInKSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUt
SWQiLCB1bmlxdWVfaWQpXQorICAgICAgY29udGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1h
dCh1bmlxdWVfaWQpCisgICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388536</attachid>
            <date>2020-01-23 05:29:55 -0800</date>
            <delta_ts>2020-01-23 07:10:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200123142954.patch</filename>
            <type>text/plain</type>
            <size>30427</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczMjMzNWVjZjIwODQ5
Y2MyZWIxYjNkNmQwMDdhNWQ2ZGM5ZjBiYi4uOGZhNGJlM2QwODI0NmZhYzUzYTNiNjk2YmQxMGRm
OTNkZTVhMGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTIzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtXaW5DYWlyb10gU29tZSBvZiBjb21iaW5pbmcgZmFtaWx5IGdseXBocyBhcmUgcmVwbGFj
ZWQgYnkgc3BhY2UgZ2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkYjk5ODYwYjc5ZGVjMDUxN2RlNzgxZWIz
YzRmNjFjMWRkZTBmYzEuLjY3NmE4MTUzN2IzYWY4MDMyMzQxODRkNmYxMWY1NDliYmY1ZDFmMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGls
ZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG1lc3NhZ2UgZm9yIGJyb3dzaW5nIGNvbnRleHQgcmVt
b3ZhbC4gV2hlbiB0aGUgbWVzc2FnZSBoYXBwZW5zLAorICAgICAgICBwYXNzIGl0IGRvd24gdG8g
dGhlIG5ldHdvcmsgY2FjaGUgdG8gcmVtb3ZlIGFueSBwZW5kaW5nCisgICAgICAgIGFzeW5jIHJl
dmFsaWRhdGlvbnMgZm9yIHRoYXQgcGFnZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpBc3luY1JldmFsaWRhdGlvbjo6Y2FuY2VsKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmJyb3dzaW5nQ29udGV4dFJl
bW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ6Omhhc2ggY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1l
SURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmNvbnN0cnVjdERlbGV0
ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorCiAyMDIwLTAxLTIy
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIHBy
b2Nlc3NdIFBpcGUgbW9yZSBNZWRpYVBsYXllclByaXZhdGUgYW5kIGNsaWVudCBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDQ4NmMwMTQ1YjcwMjhhNTBhZjU4MjA0YjZjYTMyMjMyOTAy
ODBjMzkuLjViNmExN2ZmMDYxNzg1NDA4MzY1ZDk1ZWU2OTFhMTkyOGQ3YzhlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1
aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13
aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgZW1wdHkgc3R1YiBmb3IgbmV3IG1ldGhvZCBv
biBMb2FkZXJTdHJhdGVneS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmJy
b3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1YXJkcyBhbmQgY2xl
YW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBXZWJLaXQsIFRvb2xz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBhMTI4NTg1MWYyNTlkODJh
NjNhODZkZTU4YzUzZGUzZTNiMDJkOTE0Li43OGM1MjM1ZGU5YjE4MGZmMmMyODIxZGU5OGQyY2Mw
YTZjMjE4MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4NDEs
NiArMTg0MSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlz
aW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtCiAgICAgICAgIG1fcHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudExvYWRl
cikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKKyAgICBpZiAobV9m
cmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pc1NWR0lt
YWdlQ2hyb21lQ2xpZW50KCkpCisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKGZyYW1lKCkpOwogCiAgICAgRlJBTUVM
T0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJzdG9wQWxsTG9h
ZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyIChtX3Byb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXI9JXApIiwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdldCgpKTsK
ICAgICBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAwNjQ0ZmVjNTA5ZTYwZjdhNGNmNTlhMzUyZjMy
MzM1YzJkMTY0ZDk5Li41NzlkOTAzOGYzMTdkNDVkMjdjODRhMjdlM2YyMWNmZjBhZThmZGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNTksNiArNTksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZShGcmFtZSYsIENhY2hlZFJlc291
cmNlJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVy
JiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBjb25zdCBIVFRQSGVhZGVy
TWFwJiwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRh
dGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBib29sKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAppbmRleCBjM2Q4ZTM1ZGRmMmIyMTVlNWFjN2U5MWJhOTQ0NTE2ZGFhNjA4MmJjLi44NWRiZDM1
YTRhZGY2YTBiMjFhNTZhMTQ5MDQ5MzIzM2FmZWMwZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTExNjksNiAr
MTE2OSwxMyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgICAgICByZXR1cm4gUmVsb2Fk
OwogICAgIH0KIAorICAgIC8vIERvbid0IHJldXNlIHJlc291cmNlcyB3aXRoIENhY2hlLWNvbnRy
b2w6IG5vLXN0b3JlLgorICAgIGlmIChleGlzdGluZ1Jlc291cmNlLT5yZXNwb25zZSgpLmNhY2hl
Q29udHJvbFN0YWxlV2hpbGVSZXZhbGlkYXRlKCkpIHsKKyAgICAgICAgTE9HKFJlc291cmNlTG9h
ZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kg
cmVsb2FkaW5nIGR1ZSB0byBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4iKTsKKyAgICAgICAgbG9n
TWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojppbk1lbW9yeUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dW51c2VkUmVhc29u
Tm9TdG9yZUtleSgpKTsKKyAgICAgICAgcmV0dXJuIFJlbG9hZDsKKyAgICB9CisKICAgICAvLyBJ
ZiBjcmVkZW50aWFscyB3ZXJlIHNlbnQgd2l0aCB0aGUgcHJldmlvdXMgcmVxdWVzdCBhbmQgd29u
J3QgYmUKICAgICAvLyB3aXRoIHRoaXMgb25lLCBvciB2aWNlIHZlcnNhLCByZS1mZXRjaCB0aGUg
cmVzb3VyY2UuCiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTdiYzE0
MGUzNzU5ZTBjMWEzZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5MjdmZjExMDk5NzhkOGMyODc2
ZmFlYmI4OGUzMGM2ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5
Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxv
YWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1l
SWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5icm93c2lu
Z0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1lSUQpOwor
ICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hE
TlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVm
ZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2Q0OTljMTNm
OTJhZWJiNjE4MzExNGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2ZiYjk0ZGRiZjBlZmMxMGZl
ZWU4OTg2Yjc1MTU5ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTk1LDYgKzE5
NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNl
TG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93
bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93
bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzkyMThhOTgzY2Q2NS4uNjAx
ODZmNWRlNjlkOTU3MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2Fk
UGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBh
cmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2Fk
SWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJlZmV0
Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1aW50NjRf
dD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDJlMzQ5ZjEwZGEzMWI3MThjOTRmMzlkMjc1
MWZjOWQyOTZmNDBiYzkuLmY5OGYyZDVkMDA1YjQzZjEwOTZjMDYwMzZkZjdkZGJlOWQ5YjIxNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3ZmVmNWE4
MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5ZDdhNTBl
MTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
QXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0aWMgaW5s
aW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0
KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQogCit2b2lk
IEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisgICAgICAg
IG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0YWxlV2hp
bGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQxMjliLi4w
ZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRl
ICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFzeW5jUmV2
YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihDYWNoZSYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3QgU3BlY3Vs
YXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXgg
NDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4uNzBmMjJjNjhmZDlhNDYz
NDYxMjgwNDM0N2YwMjI0YTQ4Y2QzNzhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTksMjggQEAg
c3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRp
b25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFs
aWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5
bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwg
W3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5lbnN1cmUo
ZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5jUmV2YWxp
ZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24gPSBtYWtl
VW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92
ZShlbnRyeSksIFsmLCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7CiAg
ICAgICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtleSk7CiAgICAg
ICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBBc3luYyByZXZhbGlk
YXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50aWZpZXIo
KS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAgICAgICB9KTsK
KyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoKnJldmFsaWRhdGlvbik7Cisg
ICAgICAgIHJldHVybiByZXZhbGlkYXRpb247CiAgICAgfSk7CiB9CiAjZW5kaWYKIAordm9pZCBD
YWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NU
QUxFX1dISUxFX1JFVkFMSURBVEUpCisgICAgYXV0byBsb2FkZXJzID0gbV9wZW5kaW5nQXN5bmNS
ZXZhbGlkYXRpb25CeVBhZ2UudGFrZSh7IHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZy
YW1lSUQgfSk7CisgICAgZm9yIChhdXRvIGxvYWRlciA6IGxvYWRlcnMpCisgICAgICAgIGxvYWRl
ci5jYW5jZWwoKTsKKyNlbmRpZgorfQorCiB2b2lkIENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1l
SUQsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQocmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXgg
Y2NmYzk4YTM2MzBhZmUyZTY0YmI1OWNjNDY5YTFmNzA2YWY2MDFhZS4uNjA3ZTk0NjE2YmI5NGU2
MjhkMzMwYTE2MDRjZWIyYzNlMmQ4OWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC00NCw2ICs0NCw1OCBAQCBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKK25hbWVzcGFjZSBXZWJL
aXQgeworbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CisKK3N0cnVjdCBHbG9iYWxGcmFtZUlEIHsK
KyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEOworICAgIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRDsKKworICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsKK307CisKK2lubGluZSB1bnNp
Z25lZCBHbG9iYWxGcmFtZUlEOjpoYXNoKCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBoYXNoZXNb
Ml07CisgICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsK
KyAgICBoYXNoZXNbMV0gPSBXVEY6OmludEhhc2goZnJhbWVJRC50b1VJbnQ2NCgpKTsKKworICAg
IHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7
Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR2xvYmFsRnJhbWVJRCYgYSwgY29u
c3QgR2xvYmFsRnJhbWVJRCYgYikKK3sKKyAgICAvLyBObyBuZWVkIHRvIGNoZWNrIHdlYlBhZ2VQ
cm94eUlEIHNpbmNlIHdlYlBhZ2VJRHMgYXJlIGdsb2JhbGx5IHVuaXF1ZSBhbmQgYSBnaXZlbiBX
ZWJQYWdlIGlzIGFsd2F5cworICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBXZWJQYWdl
UHJveHkuCisgICAgcmV0dXJuIGEud2ViUGFnZUlEID09IGIud2ViUGFnZUlEICYmICBhLmZyYW1l
SUQgPT0gYi5mcmFtZUlEOworfQorCit9OworfTsKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVj
dCBHbG9iYWxGcmFtZUlESGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2go
KTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEJiBhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gOiBHZW5lcmljSGFz
aFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4geworICAgIHN0YXRp
YyBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBlbXB0eVZhbHVlKCkgeyByZXR1
cm4geyB9OyB9CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgc2xvdC53ZWJQYWdlSUQgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7IH0KKworICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90
KSB7IHJldHVybiBzbG90LndlYlBhZ2VJRC50b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKKyAgICB0eXBlZGVmIEds
b2JhbEZyYW1lSURIYXNoIEhhc2g7Cit9OworCit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBOZXR3b3JrUHJvY2VzczsKQEAgLTkwLDMwICsxNDIsNiBAQCBlbnVtIGNsYXNzIFVzZURl
Y2lzaW9uIHsKICAgICBOb0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9OwogCi1zdHJ1Y3QgR2xvYmFs
RnJhbWVJRCB7Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRDsKLSAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7Ci0gICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQ7Ci0gICAgCi0gICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OwotfTsK
LQotaW5saW5lIHVuc2lnbmVkIEdsb2JhbEZyYW1lSUQ6Omhhc2goKSBjb25zdAotewotICAgIHVu
c2lnbmVkIGhhc2hlc1syXTsKLSAgICBoYXNoZXNbMF0gPSBXVEY6OmludEhhc2god2ViUGFnZUlE
LnRvVUludDY0KCkpOwotICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChmcmFtZUlELnRvVUlu
dDY0KCkpOwotCi0gICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShoYXNoZXMsIHNp
emVvZihoYXNoZXMpKTsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9iYWxG
cmFtZUlEJiBhLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBiKQotewotICAgIC8vIE5vIG5lZWQgdG8g
Y2hlY2sgd2ViUGFnZVByb3h5SUQgc2luY2Ugd2ViUGFnZUlEcyBhcmUgZ2xvYmFsbHkgdW5pcXVl
IGFuZCBhIGdpdmVuIFdlYlBhZ2UgaXMgYWx3YXlzCi0gICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRo
ZSBzYW1lIFdlYlBhZ2VQcm94eS4KLSAgICByZXR1cm4gYS53ZWJQYWdlSUQgPT0gYi53ZWJQYWdl
SUQgJiYgIGEuZnJhbWVJRCA9PSBiLmZyYW1lSUQ7Ci19Ci0KIGVudW0gY2xhc3MgQ2FjaGVPcHRp
b24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1pbmF0
ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENhY2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhlcmUg
YXJlIG5vIHJlYWQgdGltZW91dHMuCiAgICAgVGVzdGluZ01vZGUgPSAxIDw8IDAsCkBAIC0xNzUs
NiArMjAzLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRBc3luY1JldmFsaWRhdGlvbklmTmVl
ZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IE5ldHdvcmtDYWNoZTo6
S2V5Jiwgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiYmLCBjb25zdCBHbG9iYWxGcmFtZUlEJik7CiAj
ZW5kaWYKIAorICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKwogICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0
d29ya1Byb2Nlc3MuZ2V0KCk7IH0KICAgICBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBjb25zdCBTdHJpbmcmIHN0b3Jh
Z2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VEaXJlY3Rvcnk7IH0KQEAgLTIw
Myw2ICsyMzMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1RBTEVf
V0hJTEVfUkVWQUxJREFURSkKICAgICBIYXNoTWFwPEtleSwgc3RkOjp1bmlxdWVfcHRyPEFzeW5j
UmV2YWxpZGF0aW9uPj4gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zOworICAgIEhhc2hNYXA8
R2xvYmFsRnJhbWVJRCwgV1RGOjpXZWFrSGFzaFNldDxBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVu
ZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlOwogI2VuZGlmCiAKICAgICB1bnNpZ25lZCBtX3Ry
YXZlcnNlQ291bnQgeyAwIH07CkBAIC0yMTIsMjUgKzI0MywzIEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFj
ZSBXVEYgewotCi1zdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkpIHsg
cmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1l
SUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1l
SUQ+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZW1w
dHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCi0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHNs
b3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9Ci0KLSAgICBz
dGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xv
YmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9PSBz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLX07Ci0KLXRlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7
Ci0gICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOwotfTsKLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDhjMTdlMmQzODVjNThjNWUxNjM5ZjVjYzBm
ZGQ5NjUyNjhkYjIzNGYuLjIyYmJmZGIzNDUzZjM2ZjM2YWExZWJkOGFjZDJhODlmMDQzYmM1Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTY3LDYgKzY3LDEyIEBA
IFNwZWN1bGF0aXZlTG9hZDo6flNwZWN1bGF0aXZlTG9hZCgpCiAgICAgQVNTRVJUKCFtX25ldHdv
cmtMb2FkKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCgpCit7CisgICAgaWYg
KG1fbmV0d29ya0xvYWQpCisgICAgICAgIG1fbmV0d29ya0xvYWQtPmNhbmNlbCgpOworfQorCiB2
b2lkIFNwZWN1bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZVByZWxvYWRpbmcsICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIsIHJl
cXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgK
aW5kZXggNGYwYmNmODYzYzczMDgzZjMyNmUyNzRlNzQzMzIwMmUzOGRiMGE3OS4uY2VjZDVmZmZi
NGNjODY3N2Q4NWE3OGU0YjFiNmM4MzNiNzU0OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9vcmln
aW5hbFJlcXVlc3Q7IH0KIAorICAgIHZvaWQgY2FuY2VsKCk7CisKIHByaXZhdGU6CiAgICAgLy8g
TmV0d29ya0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxv
bmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBvdmVy
cmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBjNDdiODc2NTMzNDI4YmNkMTBjMDUwNTlmMTgzYzc3
NTVmZGRmNjRkLi44ZDhhZTMxYzVkMzE1MzQ5YWZhODdhNzY4N2JkYTUwNDJhZTIwOTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCkBAIC02MjksNiArNjI5LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBh
Z2VMb2FkQ29tcGxldGVkKFBhZ2UmIHBhZ2UpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQYWdlTG9hZENvbXBsZXRlZChXZWJQ
YWdlOjpmcm9tQ29yZVBhZ2UocGFnZSkuaWRlbnRpZmllcigpKSwgMCk7CiB9CiAKK3ZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmIGZyYW1lKQorewor
ICAgIEFTU0VSVChmcmFtZS5wYWdlKCkpOworICAgIGF1dG8mIHBhZ2UgPSBXZWJQYWdlOjpmcm9t
Q29yZVBhZ2UoKmZyYW1lLnBhZ2UoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCcm93c2luZ0NvbnRleHRSZW1vdmVkKHBh
Z2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBwYWdlLmlkZW50aWZpZXIoKSwgV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoZnJhbWUpLT5mcmFtZUlEKCkpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2
NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVu
dGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDlhNzhhNWZlMjRkYTc4YjM0ZWJlZmE3ODVhMDdiNTA0
OWJhNDczYmEuLjIyZjY0NGZkN2Y0NTBkMzJlYTQ1Zjk3ZTI3NDg4ZWY1ZjM0YzE1M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2Vi
Q29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYp
IGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFt
ZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwg
Y29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
VmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdl
YkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2Vi
Q29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5k
ZXggYmQwY2EzNmY4YWRiNmM2NmJmYTAzN2IwNTE1OWJhNDVjYjUwYzUyOC4uNGE4ZTFkN2RlNjBi
MTJhMDMxNjlhNzBkZTM5NTZjNWVhMzA0ZjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcApAQCAtMTE1LDYgKzExNSwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
cGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJikKK3sKK30KKwogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJh
bWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1v
dmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYm
IGxvYWRlcikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ZWM4YTQ5
NGJjYTJiMGQ1NzEzNTVhM2MzZTZmZGI1MjVhZDZiODRkLi43NTZhMDAzYTFkODg0ZjA1NGMzOWE1
MDhhODNmZGI4MzM1NDk0Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwg
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2
b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNp
Z25lZCBsb25nLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGll
bnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VM
b2FkQ29tcGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29u
dGV4dFJlbW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5n
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCBlM2ZlYzJmMWVlMDc1MDZhNjIwYjJiNzg3ZDhmYjY5MWRiMWEyMTYy
Li42Yjc4YjZmMWRkNTEwM2ZiOTE1MzdhYzZhZjJiMmUzMjk1NTEzZTZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMS0yMyAgUm9iIEJ1aXMg
IDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0
YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZnJhbWUg
cmVtb3ZhbCB0cmlnZ2VycyByZXZhbGlkYXRpb24gY2FuY2VsbGF0aW9uLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVt
b3ZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUv
cmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5OiBBZGRlZC4KKyAgICAgICAgKGlkX3Rva2VuKToKKyAg
ICAgICAgKG1haW4pOgorCiAyMDIwLTAxLTIyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CiAKICAgICAgICAgRml4IGZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci1vcmlnaW4td29ya2Vy
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYzRlYjYwNTM2YzY1MzQxOGQ5M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorICAKKworUEFTUyBGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJl
dmFsaWRhdGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFl
NWYzNGVmODFmZDA1NGQxODYyOTk1YThjYmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxl
LXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhhdCBm
cmFtZSByZW1vdmFsIGNhbmNlbHMgaXRzIHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9j
b21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3QgdXJs
ID0gYHJlc291cmNlcy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgorCisg
IC8vIGZpcnN0IGZyYW1lIGxvYWQKKyAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgIGZyYW1lLnNyYyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkgPT4g
eworICAgIC8vIHNlY29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAgICBs
ZXQgZnJhbWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJhbWUy
LnNyYyA9IHVybDsKKyAgICBmcmFtZTIub25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVtb3Zl
IGZyYW1lLCBjYW5jZWxpbmcgcmV2YWxpZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7Cisg
ICAgICAvLyB0aGlyZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisgICAg
ICBsZXQgZnJhbWUzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBm
cmFtZTMuc3JjID0gdXJsOworICAgICAgZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAg
ZmV0Y2goInJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVzdF90
b2tlbikudGhlbih0LnN0ZXBfZnVuYygocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICB9KSk7CisgICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZyYW1lMyk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJh
bWUyKTsKKyAgfQorICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdGcmFt
ZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFt
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzFiODEwZjFjZmUzZDZkODNjN2FlYmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAsMCAr
MSwzOCBAQAoraW1wb3J0IHJhbmRvbSwgc3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYgaWRf
dG9rZW4oKToKKyAgIGxldHRlcnMgPSBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1cm4g
Jycuam9pbihyYW5kb20uY2hvaWNlKGxldHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKworZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVlc3Qu
aGVhZGVycy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVzdC5H
RVQuZmlyc3QoInRva2VuIiwgTm9uZSkKKyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZpcnN0
KCJxdWVyeSIsIE5vbmUpICE9IE5vbmUKKyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNoLmxv
Y2s6CisgICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAg
ICBjb3VudCA9IDAKKyAgICAgIGlmIHZhbHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0gaW50
KHZhbHVlKQorICAgICAgaWYgaXNfcXVlcnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAgICAg
ICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxzZToK
KyAgICAgICAgaWYgaXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNvdW50
ID0gY291bnQgKyAxCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291
bnQpCisKKyAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1lLnNs
ZWVwKDUpOworCisgICAgaWYgaXNfcXVlcnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQiLCBj
b3VudCksICgiVGVzdCIsIHN0cihyZXF1ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250ZW50
ID0gIiIKKyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgorICAg
ICAgdW5pcXVlX2lkID0gaWRfdG9rZW4oKQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlw
ZSIsICJ0ZXh0L2h0bWwiKSwKKyAgICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgInBy
aXZhdGUsIG1heC1hZ2U9MCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAgICAg
ICAgICAgICAoIkVUYWciLCAnInN3ciInKSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUtSWQi
LCB1bmlxdWVfaWQpXQorICAgICAgY29udGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1hdCh1
bmlxdWVfaWQpCisgICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388540</attachid>
            <date>2020-01-23 07:10:40 -0800</date>
            <delta_ts>2020-01-24 00:24:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200123161037.patch</filename>
            <type>text/plain</type>
            <size>30431</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczMjMzNWVjZjIwODQ5
Y2MyZWIxYjNkNmQwMDdhNWQ2ZGM5ZjBiYi4uOGZhNGJlM2QwODI0NmZhYzUzYTNiNjk2YmQxMGRm
OTNkZTVhMGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTIzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtXaW5DYWlyb10gU29tZSBvZiBjb21iaW5pbmcgZmFtaWx5IGdseXBocyBhcmUgcmVwbGFj
ZWQgYnkgc3BhY2UgZ2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkYjk5ODYwYjc5ZGVjMDUxN2RlNzgxZWIz
YzRmNjFjMWRkZTBmYzEuLjY3NmE4MTUzN2IzYWY4MDMyMzQxODRkNmYxMWY1NDliYmY1ZDFmMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGls
ZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG1lc3NhZ2UgZm9yIGJyb3dzaW5nIGNvbnRleHQgcmVt
b3ZhbC4gV2hlbiB0aGUgbWVzc2FnZSBoYXBwZW5zLAorICAgICAgICBwYXNzIGl0IGRvd24gdG8g
dGhlIG5ldHdvcmsgY2FjaGUgdG8gcmVtb3ZlIGFueSBwZW5kaW5nCisgICAgICAgIGFzeW5jIHJl
dmFsaWRhdGlvbnMgZm9yIHRoYXQgcGFnZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpBc3luY1JldmFsaWRhdGlvbjo6Y2FuY2VsKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmJyb3dzaW5nQ29udGV4dFJl
bW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ6Omhhc2ggY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1l
SURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmNvbnN0cnVjdERlbGV0
ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorCiAyMDIwLTAxLTIy
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIHBy
b2Nlc3NdIFBpcGUgbW9yZSBNZWRpYVBsYXllclByaXZhdGUgYW5kIGNsaWVudCBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDQ4NmMwMTQ1YjcwMjhhNTBhZjU4MjA0YjZjYTMyMjMyOTAy
ODBjMzkuLjViNmExN2ZmMDYxNzg1NDA4MzY1ZDk1ZWU2OTFhMTkyOGQ3YzhlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMjMgIFJvYiBCdWlzICA8cmJ1
aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13
aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgZW1wdHkgc3R1YiBmb3IgbmV3IG1ldGhvZCBv
biBMb2FkZXJTdHJhdGVneS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmJy
b3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1YXJkcyBhbmQgY2xl
YW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBXZWJLaXQsIFRvb2xz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBhMTI4NTg1MWYyNTlkODJh
NjNhODZkZTU4YzUzZGUzZTNiMDJkOTE0Li43OGM1MjM1ZGU5YjE4MGZmMmMyODIxZGU5OGQyY2Mw
YTZjMjE4MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4NDEs
NiArMTg0MSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlz
aW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtCiAgICAgICAgIG1fcHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudExvYWRl
cikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKKyAgICBpZiAobV9m
cmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pc1NWR0lt
YWdlQ2hyb21lQ2xpZW50KCkpCisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKGZyYW1lKCkpOwogCiAgICAgRlJBTUVM
T0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJzdG9wQWxsTG9h
ZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyIChtX3Byb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXI9JXApIiwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdldCgpKTsK
ICAgICBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAwNjQ0ZmVjNTA5ZTYwZjdhNGNmNTlhMzUyZjMy
MzM1YzJkMTY0ZDk5Li41NzlkOTAzOGYzMTdkNDVkMjdjODRhMjdlM2YyMWNmZjBhZThmZGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNTksNiArNTksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZShGcmFtZSYsIENhY2hlZFJlc291
cmNlJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVy
JiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBjb25zdCBIVFRQSGVhZGVy
TWFwJiwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRh
dGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoUGFnZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBib29sKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAppbmRleCBjM2Q4ZTM1ZGRmMmIyMTVlNWFjN2U5MWJhOTQ0NTE2ZGFhNjA4MmJjLi44NWRiZDM1
YTRhZGY2YTBiMjFhNTZhMTQ5MDQ5MzIzM2FmZWMwZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTExNjksNiAr
MTE2OSwxMyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgICAgICByZXR1cm4gUmVsb2Fk
OwogICAgIH0KIAorICAgIC8vIERvbid0IHJldXNlIHJlc291cmNlcyB3aXRoIENhY2hlLWNvbnRy
b2w6IG5vLXN0b3JlLgorICAgIGlmIChleGlzdGluZ1Jlc291cmNlLT5yZXNwb25zZSgpLmNhY2hl
Q29udHJvbFN0YWxlV2hpbGVSZXZhbGlkYXRlKCkpIHsKKyAgICAgICAgTE9HKFJlc291cmNlTG9h
ZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kg
cmVsb2FkaW5nIGR1ZSB0byBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4iKTsKKyAgICAgICAgbG9n
TWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojppbk1lbW9yeUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dW51c2VkUmVhc29u
Tm9TdG9yZUtleSgpKTsKKyAgICAgICAgcmV0dXJuIFJlbG9hZDsKKyAgICB9CisKICAgICAvLyBJ
ZiBjcmVkZW50aWFscyB3ZXJlIHNlbnQgd2l0aCB0aGUgcHJldmlvdXMgcmVxdWVzdCBhbmQgd29u
J3QgYmUKICAgICAvLyB3aXRoIHRoaXMgb25lLCBvciB2aWNlIHZlcnNhLCByZS1mZXRjaCB0aGUg
cmVzb3VyY2UuCiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTdiYzE0
MGUzNzU5ZTBjMWEzZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5MjdmZjExMDk5NzhkOGMyODc2
ZmFlYmI4OGUzMGM2ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5
Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxv
YWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1l
SWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5icm93c2lu
Z0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1lSUQpOwor
ICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hE
TlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVm
ZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2Q0OTljMTNm
OTJhZWJiNjE4MzExNGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2ZiYjk0ZGRiZjBlZmMxMGZl
ZWU4OTg2Yjc1MTU5ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTk1LDYgKzE5
NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNl
TG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93
bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93
bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzkyMThhOTgzY2Q2NS4uNjAx
ODZmNWRlNjlkOTU3MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2Fk
UGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBh
cmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2Fk
SWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJlZmV0
Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1aW50NjRf
dD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDJlMzQ5ZjEwZGEzMWI3MThjOTRmMzlkMjc1
MWZjOWQyOTZmNDBiYzkuLmY5OGYyZDVkMDA1YjQzZjEwOTZjMDYwMzZkZjdkZGJlOWQ5YjIxNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3ZmVmNWE4
MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5ZDdhNTBl
MTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
QXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0aWMgaW5s
aW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0
KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQogCit2b2lk
IEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisgICAgICAg
IG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0YWxlV2hp
bGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQxMjliLi4w
ZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRl
ICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFzeW5jUmV2
YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihDYWNoZSYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3QgU3BlY3Vs
YXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXgg
NDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4uMzQ1NWFiZjdiMTkwNmI3
YzBhZjJhMjQxMTA3ZGE4YmZkM2M0ODUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTksMjggQEAg
c3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRp
b25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFs
aWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5
bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwg
W3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5lbnN1cmUo
ZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5jUmV2YWxp
ZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24gPSBtYWtl
VW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92
ZShlbnRyeSksIFt0aGlzLCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpSZXN1bHQgcmVzdWx0KSB7
CiAgICAgICAgICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMucmVtb3ZlKGtleSk7CiAg
ICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBBc3luYyByZXZh
bGlkYXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50aWZp
ZXIoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAgICAgICB9
KTsKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoKnJldmFsaWRhdGlvbik7
CisgICAgICAgIHJldHVybiByZXZhbGlkYXRpb247CiAgICAgfSk7CiB9CiAjZW5kaWYKIAordm9p
ZCBDYWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hF
X1NUQUxFX1dISUxFX1JFVkFMSURBVEUpCisgICAgYXV0byBsb2FkZXJzID0gbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25CeVBhZ2UudGFrZSh7IHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdl
YkZyYW1lSUQgfSk7CisgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBsb2FkZXJzKQorICAgICAgICBs
b2FkZXIuY2FuY2VsKCk7CisjZW5kaWYKK30KKwogdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBm
cmFtZUlELCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmlu
ZGV4IGNjZmM5OGEzNjMwYWZlMmU2NGJiNTljYzQ2OWExZjcwNmFmNjAxYWUuLjYwN2U5NDYxNmJi
OTRlNjI4ZDMzMGExNjA0Y2ViMmMzZTJkODlkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtNDQsNiArNDQsNTggQEAgY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogfQogCituYW1lc3BhY2Ug
V2ViS2l0IHsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworCitzdHJ1Y3QgR2xvYmFsRnJhbWVJ
RCB7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRDsKKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Cit9OworCitpbmxpbmUg
dW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgaGFz
aGVzWzJdOworICAgIGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQo
KSk7CisgICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7CisK
KyAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hl
cykpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCit7CisgICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQ
YWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2
ZW4gV2ViUGFnZSBpcyBhbHdheXMKKyAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2Vi
UGFnZVByb3h5LgorICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5m
cmFtZUlEID09IGIuZnJhbWVJRDsKK30KKworfTsKK307CisKK25hbWVzcGFjZSBXVEYgeworCitz
dHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkpIHsgcmV0dXJuIGtleS5o
YXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IDogR2VuZXJp
Y0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKKyAgICBz
dGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZW1wdHlWYWx1ZSgpIHsg
cmV0dXJuIHsgfTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdl
YktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHNsb3Qud2ViUGFnZUlE
ID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9CisKKyAgICBzdGF0aWMgYm9vbCBp
c0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYg
c2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9PSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1
bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7CisgICAgdHlwZWRl
ZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOworfTsKKworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CkBAIC05MCwzMCArMTQyLDYgQEAgZW51bSBjbGFzcyBV
c2VEZWNpc2lvbiB7CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotc3RydWN0IEds
b2JhbEZyYW1lSUQgewotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQ7
Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwotICAgIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEOwotICAgIAotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsK
LX07Ci0KLWlubGluZSB1bnNpZ25lZCBHbG9iYWxGcmFtZUlEOjpoYXNoKCkgY29uc3QKLXsKLSAg
ICB1bnNpZ25lZCBoYXNoZXNbMl07Ci0gICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKHdlYlBh
Z2VJRC50b1VJbnQ2NCgpKTsKLSAgICBoYXNoZXNbMV0gPSBXVEY6OmludEhhc2goZnJhbWVJRC50
b1VJbnQ2NCgpKTsKLQotICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVz
LCBzaXplb2YoaGFzaGVzKSk7Ci19Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR2xv
YmFsRnJhbWVJRCYgYSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgYikKLXsKLSAgICAvLyBObyBuZWVk
IHRvIGNoZWNrIHdlYlBhZ2VQcm94eUlEIHNpbmNlIHdlYlBhZ2VJRHMgYXJlIGdsb2JhbGx5IHVu
aXF1ZSBhbmQgYSBnaXZlbiBXZWJQYWdlIGlzIGFsd2F5cwotICAgIC8vIGFzc29jaWF0ZWQgd2l0
aCB0aGUgc2FtZSBXZWJQYWdlUHJveHkuCi0gICAgcmV0dXJuIGEud2ViUGFnZUlEID09IGIud2Vi
UGFnZUlEICYmICBhLmZyYW1lSUQgPT0gYi5mcmFtZUlEOwotfQotCiBlbnVtIGNsYXNzIENhY2hl
T3B0aW9uIDogdWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdlIHRyeSB0byBlbGlt
aW5hdGUgc291cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBzaHJpbmsgYW5kIHRo
ZXJlIGFyZSBubyByZWFkIHRpbWVvdXRzLgogICAgIFRlc3RpbmdNb2RlID0gMSA8PCAwLApAQCAt
MTc1LDYgKzIwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXN5bmNSZXZhbGlkYXRpb25J
Zk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBOZXR3b3JrQ2Fj
aGU6OktleSYsIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYp
OwogI2VuZGlmCiAKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5
SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CisKICAgICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBt
X25ldHdvcmtQcm9jZXNzLmdldCgpOyB9CiAgICAgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Np
b25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgY29uc3QgU3RyaW5nJiBz
dG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlRGlyZWN0b3J5OyB9CkBA
IC0yMDMsNiArMjMzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NU
QUxFX1dISUxFX1JFVkFMSURBVEUpCiAgICAgSGFzaE1hcDxLZXksIHN0ZDo6dW5pcXVlX3B0cjxB
c3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uczsKKyAgICBIYXNo
TWFwPEdsb2JhbEZyYW1lSUQsIFdURjo6V2Vha0hhc2hTZXQ8QXN5bmNSZXZhbGlkYXRpb24+PiBt
X3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZTsKICNlbmRpZgogCiAgICAgdW5zaWduZWQg
bV90cmF2ZXJzZUNvdW50IHsgMCB9OwpAQCAtMjEyLDI1ICsyNDMsMyBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1uYW1l
c3BhY2UgV1RGIHsKLQotc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKLSAgICBzdGF0aWMgdW5z
aWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5
KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEPiB7Ci0gICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
IGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KLQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkg
eyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQotCi0g
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RD4gewotICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKLX07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Bl
Y3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAppbmRleCA4YzE3ZTJkMzg1YzU4YzVlMTYzOWY1
Y2MwZmRkOTY1MjY4ZGIyMzRmLi4yMmJiZmRiMzQ1M2YzNmYzNmFhMWViZDhhY2QyYTg5ZjA0M2Jj
NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCkBAIC02Nyw2ICs2Nywx
MiBAQCBTcGVjdWxhdGl2ZUxvYWQ6On5TcGVjdWxhdGl2ZUxvYWQoKQogICAgIEFTU0VSVCghbV9u
ZXR3b3JrTG9hZCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVMb2FkOjpjYW5jZWwoKQoreworICAg
IGlmIChtX25ldHdvcmtMb2FkKQorICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwoKTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLCAiU3BlY3VsYXRpdmUgcmVkaXJlY3QgJXMgLT4gJXMi
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlZGlyZWN0UmVxdWVzdC51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9h
ZC5oCmluZGV4IDRmMGJjZjg2M2M3MzA4M2YzMjZlMjc0ZTc0MzMyMDJlMzhkYjBhNzkuLmNlY2Q1
ZmZmYjRjYzg2NzdkODVhNzhlNGIxYjZjODMzYjc1NDkyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
b3JpZ2luYWxSZXF1ZXN0OyB9CiAKKyAgICB2b2lkIGNhbmNlbCgpOworCiBwcml2YXRlOgogICAg
IC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
b3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ3Yjg3NjUzMzQyOGJjZDEwYzA1MDU5ZjE4
M2M3NzU1ZmRkZjY0ZC4uOGQ4YWUzMWM1ZDMxNTM0OWFmYTg3YTc2ODdiZGE1MDQyYWUyMDk3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcApAQCAtNjI5LDYgKzYyOSwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpwYWdlTG9hZENvbXBsZXRlZChQYWdlJiBwYWdlKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxvYWRDb21wbGV0ZWQo
V2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBhZ2UpLmlkZW50aWZpZXIoKSksIDApOwogfQogCit2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJiBmcmFtZSkK
K3sKKyAgICBBU1NFUlQoZnJhbWUucGFnZSgpKTsKKyAgICBhdXRvJiBwYWdlID0gV2ViUGFnZTo6
ZnJvbUNvcmVQYWdlKCpmcmFtZS5wYWdlKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZChwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcGFnZS5pZGVudGlmaWVyKCksIFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKS0+ZnJhbWVJRCgpKSwgMCk7Cit9CisKIHN0YXRpYyB1
aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3Qg
aWRlbnRpZmllciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5YTc4YTVmZTI0ZGE3OGIzNGViZWZhNzg1YTA3
YjUwNDliYTQ3M2JhLi4yMmY2NDRmZDdmNDUwZDMyZWE0NWY5N2UyNzQ4OGVmNWYzNGMxNTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNl
KFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYp
PiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6
RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xp
Y3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFk
ZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRl
ZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVk
KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CmluZGV4IGJkMGNhMzZmOGFkYjZjNjZiZmEwMzdiMDUxNTliYTQ1Y2I1MGM1MjguLjRhOGUxZDdk
ZTYwYjEyYTAzMTY5YTcwZGUzOTU2YzVlYTMwNGY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKQEAgLTExNSw2ICsxMTUsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKQogewogfQogCit2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpCit7Cit9CisKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUm
IGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBX
VEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cj4mJiBsb2FkZXIpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggOGVj
OGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAwM2ExZDg4NGYwNTRj
MzlhNTA4YTgzZmRiODMzNTQ5NDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00
Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFt
ZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAg
ICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwg
dW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29u
c3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCBw
YWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2lu
Z0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92
ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggZTNmZWMyZjFlZTA3NTA2YTYyMGIyYjc4N2Q4ZmI2OTFkYjFh
MjE2Mi4uNmI3OGI2ZjFkZDUxMDNmYjkxNTM3YWM2YWYyYjJlMzI5NTUxM2U2ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDEtMjMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZv
ciBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGZy
YW1lIHJlbW92YWwgdHJpZ2dlcnMgcmV2YWxpZGF0aW9uIGNhbmNlbGxhdGlvbi4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1l
LXJlbW92YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlk
YXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weTogQWRkZWQuCisgICAgICAgIChpZF90b2tlbik6
CisgICAgICAgIChtYWluKToKKwogMjAyMC0wMS0yMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEZpeCBmZXRjaC9hcGkvcG9saWNpZXMvcmVmZXJyZXItb3JpZ2luLXdv
cmtlci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2M0ZWI2MDUzNmM2NTM0MThkOTNiMzE3ZTJlM2ZjNDBlMTBlOGQ4YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKyAgCisKK1BBU1MgRnJhbWUgcmVtb3ZhbCBzaG91bGQgY2FuY2VsIGl0
cyByZXZhbGlkYXRpb25zIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVt
b3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZTVmMzRlZjgxZmQwNTRkMTg2Mjk5NWE4Y2JjMzdhYTUxMGYyN2NjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
dGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbApAQCAtMCwwICsxLDM5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0IHRo
YXQgZnJhbWUgcmVtb3ZhbCBjYW5jZWxzIGl0cyByZXZhbGlkYXRpb25zPC90aXRsZT4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK2FzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICB2YXIgcmVxdWVzdF90b2tlbiA9IHRva2VuKCk7CisgIGNvbnN0
IHVybCA9IGByZXNvdXJjZXMvc3RhbGUtZnJhbWUucHk/dG9rZW49YCArIHJlcXVlc3RfdG9rZW4K
KworICAvLyBmaXJzdCBmcmFtZSBsb2FkCisgIGxldCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICBmcmFtZS5zcmMgPSB1cmw7CisgIGZyYW1lLm9ubG9hZCA9ICgp
ID0+IHsKKyAgICAvLyBzZWNvbmQgZnJhbWUgbG9hZCwgdHJpZ2dlcnMgcmV2YWxpZGF0aW9uCisg
ICAgbGV0IGZyYW1lMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGZy
YW1lMi5zcmMgPSB1cmw7CisgICAgZnJhbWUyLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgIC8vIHJl
bW92ZSBmcmFtZSwgY2FuY2VsaW5nIHJldmFsaWRhdGlvbgorICAgICAgZnJhbWUyLnJlbW92ZSgp
OworICAgICAgLy8gdGhpcmQgZnJhbWUgbG9hZCwgdHJpZ2dlcnMgbmV3IHJldmFsaWRhdGlvbgor
ICAgICAgbGV0IGZyYW1lMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgZnJhbWUzLnNyYyA9IHVybDsKKyAgICAgIGZyYW1lMy5vbmxvYWQgPSAoKSA9PiB7CisgICAg
ICAgIGZldGNoKCJyZXNvdXJjZXMvc3RhbGUtZnJhbWUucHk/cXVlcnkmdG9rZW49IiArIHJlcXVl
c3RfdG9rZW4pLnRoZW4odC5zdGVwX2Z1bmMoKHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgiQ291bnQiKSwgJzInKTsKKyAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSkpOworICAgICAgfQorICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChmcmFtZTMpOworICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGZyYW1lMik7CisgIH0KKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Cit9LCAn
RnJhbWUgcmVtb3ZhbCBzaG91bGQgY2FuY2VsIGl0cyByZXZhbGlkYXRpb25zJyk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUt
ZnJhbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxYjgxMGYxY2ZlM2Q2ZDgzYzdhZWJjMTU0ZWI1YWY5MzU4NWZjNTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5CkBAIC0w
LDAgKzEsMzggQEAKK2ltcG9ydCByYW5kb20sIHN0cmluZywgZGF0ZXRpbWUsIHRpbWUKKworZGVm
IGlkX3Rva2VuKCk6CisgICBsZXR0ZXJzID0gc3RyaW5nLmFzY2lpX2xvd2VyY2FzZQorICAgcmV0
dXJuICcnLmpvaW4ocmFuZG9tLmNob2ljZShsZXR0ZXJzKSBmb3IgaSBpbiByYW5nZSgyMCkpCisK
K2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBpc19yZXZhbGlkYXRpb24gPSByZXF1
ZXN0LmhlYWRlcnMuZ2V0KCJJZi1Ob25lLU1hdGNoIiwgTm9uZSkKKyAgICB0b2tlbiA9IHJlcXVl
c3QuR0VULmZpcnN0KCJ0b2tlbiIsIE5vbmUpCisgICAgaXNfcXVlcnkgPSByZXF1ZXN0LkdFVC5m
aXJzdCgicXVlcnkiLCBOb25lKSAhPSBOb25lCisgICAgd2l0aCByZXF1ZXN0LnNlcnZlci5zdGFz
aC5sb2NrOgorICAgICAgdmFsdWUgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKQor
ICAgICAgY291bnQgPSAwCisgICAgICBpZiB2YWx1ZSAhPSBOb25lOgorICAgICAgICBjb3VudCA9
IGludCh2YWx1ZSkKKyAgICAgIGlmIGlzX3F1ZXJ5OgorICAgICAgICBpZiBjb3VudCA8IDI6Cisg
ICAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBjb3VudCkKKyAgICAgIGVs
c2U6CisgICAgICAgIGlmIGlzX3JldmFsaWRhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICBj
b3VudCA9IGNvdW50ICsgMQorICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4s
IGNvdW50KQorCisgICAgaWYgaXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgdGlt
ZS5zbGVlcCg1KTsKKworICAgIGlmIGlzX3F1ZXJ5OgorICAgICAgaGVhZGVycyA9IFsoIkNvdW50
IiwgY291bnQpLCAoIlRlc3QiLCBzdHIocmVxdWVzdC5yYXdfaGVhZGVycykpXQorICAgICAgY29u
dGVudCA9ICIiCisgICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50CisgICAgZWxzZToK
KyAgICAgIHVuaXF1ZV9pZCA9IGlkX3Rva2VuKCkKKyAgICAgIGhlYWRlcnMgPSBbKCJDb250ZW50
LVR5cGUiLCAidGV4dC9odG1sIiksCisgICAgICAgICAgICAgICAgICgiQ2FjaGUtQ29udHJvbCIs
ICJwcml2YXRlLCBtYXgtYWdlPTAsIHN0YWxlLXdoaWxlLXJldmFsaWRhdGU9NjAiKSwKKyAgICAg
ICAgICAgICAgICAgKCJFVGFnIiwgJyJzd3IiJyksCisgICAgICAgICAgICAgICAgICgiVW5pcXVl
LUlkIiwgdW5pcXVlX2lkKV0KKyAgICAgIGNvbnRlbnQgPSAiPGJvZHk+e308L2JvZHk+Ii5mb3Jt
YXQodW5pcXVlX2lkKQorICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgY29udGVudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388659</attachid>
            <date>2020-01-24 00:24:08 -0800</date>
            <delta_ts>2020-01-27 00:44:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200124092406.patch</filename>
            <type>text/plain</type>
            <size>30592</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg5OGU0N2Q4OGEwZTFl
OTg2Yjk1NzY3ODZmZjQ1MGFkOGZkYjMwNC4uZDkwYzRhOTQxNDNmNTA5Mjg0MTdlMjVkNmFiNDI2
NWEwMWI2ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTI0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorCiAyMDIw
LTAxLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YiBBbmltYXRpb25zXSBNYWtlIEFuaW1hdGlvbkxpc3QgcmVmLWNvdW50ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YWY0YjQ0ODIzMzA2NjA3Y2UyOWU1MDVlYjQ4N2E1YTYzMTg5ZDIwMi4uMzJjZmRlZTEzYzU3ZGQ3
ZWIxN2MxNjExMGM0ZDE1NjU4Mzg0MmMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAy
MC0wMS0yNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBw
YWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWVzc2Fn
ZSBmb3IgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsLiBXaGVuIHRoZSBtZXNzYWdlIGhhcHBlbnMs
CisgICAgICAgIHBhc3MgaXQgZG93biB0byB0aGUgbmV0d29yayBjYWNoZSB0byByZW1vdmUgYW55
IHBlbmRpbmcKKyAgICAgICAgYXN5bmMgcmV2YWxpZGF0aW9ucyBmb3IgdGhhdCBwYWdlLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3Np
bmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5
bmNSZXZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkFzeW5j
UmV2YWxpZGF0aW9uOjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0Fz
eW5jUmV2YWxpZGF0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6c3RhcnRB
c3luY1JldmFsaWRhdGlvbklmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hl
OjpDYWNoZTo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
R2xvYmFsRnJhbWVJRDo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6Okdsb2JhbEZyYW1lSURIYXNoOjpoYXNoKToK
KyAgICAgICAgKFdURjo6R2xvYmFsRnJhbWVJREhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6
SGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmVtcHR5VmFs
dWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9i
YWxGcmFtZUlEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmlzRGVsZXRlZFZhbHVl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9h
ZDo6Y2FuY2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YnJvd3Np
bmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5Lmg6CisKIDIwMjAtMDEtMjMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1ha2UgaXQgcG9zc2libGUgZm9yIFdlYktpdCBjbGll
bnRzIHRvIGVuYWJsZSBjb25uZWN0aW9ucyB0byBhc3NldCBzZXJ2aWNlcyBpbiB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDQ4NmMwMTQ1YjcwMjhhNTBhZjU4
MjA0YjZjYTMyMjMyOTAyODBjMzkuLjUyNmY2MGQxMThiY2UwYzhkOGNiODc2NDMxOWY2YWVjZmQ4
OTkwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMjQg
IFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9z
dXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgZW1wdHkgc3R1YiBm
b3IgbmV3IG1ldGhvZCBvbiBMb2FkZXJTdHJhdGVneS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDIwLTAxLTIwICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVy
IGd1YXJkcyBhbmQgY2xlYW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5
LCBXZWJLaXQsIFRvb2xzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBh
MTI4NTg1MWYyNTlkODJhNjNhODZkZTU4YzUzZGUzZTNiMDJkOTE0Li43OGM1MjM1ZGU5YjE4MGZm
MmMyODIxZGU5OGQyY2MwYTZjMjE4MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTE4NDEsNiArMTg0MSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2Fk
ZXJzKENsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtCiAgICAg
ICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAo
bV9kb2N1bWVudExvYWRlcikKICAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3RvcExvYWRpbmco
KTsKKyAgICBpZiAobV9mcmFtZS5wYWdlKCkgJiYgIW1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5pc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkpCisgICAgICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKGZyYW1lKCkp
OwogCiAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRp
bmcsICJzdG9wQWxsTG9hZGVyczogQ2xlYXJpbmcgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVy
IChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI9JXApIiwgbV9wcm92aXNpb25hbERvY3VtZW50
TG9hZGVyLmdldCgpKTsKICAgICBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKG51bGxwdHIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAwNjQ0ZmVjNTA5ZTYw
ZjdhNGNmNTlhMzUyZjMyMzM1YzJkMTY0ZDk5Li41NzlkOTAzOGYzMTdkNDVkMjdjODRhMjdlM2Yy
MWNmZjBhZThmZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3Ry
YXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAt
NTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZShGcmFt
ZSYsIENhY2hlZFJlc291cmNlJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFN1YnJlc291cmNlTG9h
ZGVyPiYmKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KEZyYW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBj
b25zdCBIVFRQSGVhZGVyTWFwJiwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUxvYWRDb21wbGV0
ZWQoUGFnZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChG
cmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXImLCBi
b29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBjM2Q4ZTM1ZGRmMmIyMTVlNWFjN2U5MWJhOTQ0NTE2ZGFh
NjA4MmJjLi44NWRiZDM1YTRhZGY2YTBiMjFhNTZhMTQ5MDQ5MzIzM2FmZWMwZTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTExNjksNiArMTE2OSwxMyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0
aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgICAg
ICByZXR1cm4gUmVsb2FkOwogICAgIH0KIAorICAgIC8vIERvbid0IHJldXNlIHJlc291cmNlcyB3
aXRoIENhY2hlLWNvbnRyb2w6IG5vLXN0b3JlLgorICAgIGlmIChleGlzdGluZ1Jlc291cmNlLT5y
ZXNwb25zZSgpLmNhY2hlQ29udHJvbFN0YWxlV2hpbGVSZXZhbGlkYXRlKCkpIHsKKyAgICAgICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZh
bGlkYXRpb25Qb2xpY3kgcmVsb2FkaW5nIGR1ZSB0byBDYWNoZS1jb250cm9sOiBuby1zdG9yZS4i
KTsKKyAgICAgICAgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjppbk1lbW9yeUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6dW51c2VkUmVhc29uTm9TdG9yZUtleSgpKTsKKyAgICAgICAgcmV0dXJuIFJlbG9hZDsKKyAg
ICB9CisKICAgICAvLyBJZiBjcmVkZW50aWFscyB3ZXJlIHNlbnQgd2l0aCB0aGUgcHJldmlvdXMg
cmVxdWVzdCBhbmQgd29uJ3QgYmUKICAgICAvLyB3aXRoIHRoaXMgb25lLCBvciB2aWNlIHZlcnNh
LCByZS1mZXRjaCB0aGUgcmVzb3VyY2UuCiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggYTdiYzE0MGUzNzU5ZTBjMWEzZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5Mjdm
ZjExMDk5NzhkOGMyODc2ZmFlYmI4OGUzMGM2ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQ5Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAg
IHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQs
IHdlYkZyYW1lSUQpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdv
cmtQcm9jZXNzLT5wcmVmZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggN2Q0OTljMTNmOTJhZWJiNjE4MzExNGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2Zi
Yjk0ZGRiZjBlZmMxMGZlZWU4OTg2Yjc1MTU5ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTk1LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVu
dGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0
ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVt
b3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNl
aXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAg
ICB2b2lkIHN0YXJ0RG93bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzky
MThhOTgzY2Q2NS4uNjAxODZmNWRlNjlkOTU3MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0
X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1l
SUQpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhP
cHRpb25hbDx1aW50NjRfdD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDJlMzQ5ZjEwZGEz
MWI3MThjOTRmMzlkMjc1MWZjOWQyOTZmNDBiYzkuLmY5OGYyZDVkMDA1YjQzZjEwOTZjMDYwMzZk
ZjdkZGJlOWQ5YjIxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3
MzNiNTIwYTI3ZmVmNWE4MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4
MWZmNWUyNDQ5ZDdhNTBlMTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwx
MiBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZh
bGlkYXRpb25SZXF1ZXN0KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1
ZXN0OwogfQogCit2b2lkIEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmICht
X2xvYWQpCisgICAgICAgIG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlk
YXRpb246OnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQXN5bmNSZXZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQXN5bmNSZXZhbGlkYXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZi
MDI2NGFhODQxMjliLi4wZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxp
ZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1Jl
dmFsaWRhdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50
cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3
IEBAIGNsYXNzIFNwZWN1bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAK
LWNsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiAr
NTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFs
aWRhdGlvbihDYWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAg
ICAgY29uc3QgU3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHAKaW5kZXggNDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4u
ZWI0N2VjYTQzN2Y3ZDg3MjY2YzIyMTAyZGQ3MzM1NzczZDljODYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5
LDE0ICszMTksMjkgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0
QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxF
bnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3Bl
bmRpbmdBc3luY1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJu
IG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBX
VEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1
bHQpIHsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlv
bkJ5UGFnZS5lbnN1cmUoZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNo
U2V0PEFzeW5jUmV2YWxpZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZh
bGlkYXRpb24gPSBtYWtlVW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwg
cmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIFt0aGlzLCBrZXldKEFzeW5jUmV2YWxpZGF0aW9uOjpS
ZXN1bHQgcmVzdWx0KSB7CisgICAgICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNSZXZhbGlk
YXRpb25zLmNvbnRhaW5zKGtleSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlk
YXRpb25zLnJlbW92ZShrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3
b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRoIHJl
c3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50
PihyZXN1bHQpKTsKICAgICAgICAgfSk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUuYWRkKCpyZXZhbGlkYXRpb24pOworICAgICAgICByZXR1cm4gcmV2YWxpZGF0aW9uOwogICAg
IH0pOwogfQogI2VuZGlmCiAKK3ZvaWQgQ2FjaGU6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2Vi
UGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRCkKK3sKKyNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQorICAgIGF1dG8g
bG9hZGVycyA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2UoeyB3ZWJQYWdl
UHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEIH0pOworICAgIGZvciAoYXV0byYgbG9hZGVy
IDogbG9hZGVycykKKyAgICAgICAgbG9hZGVyLmNhbmNlbCgpOworI2VuZGlmCit9CisKIHZvaWQg
Q2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCBjY2ZjOThhMzYzMGFmZTJlNjRiYjU5Y2M0NjlhMWY3
MDZhZjYwMWFlLi42MDdlOTQ2MTZiYjk0ZTYyOGQzMzBhMTYwNGNlYjJjM2UyZDg5ZDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgK
QEAgLTQ0LDYgKzQ0LDU4IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFNoYXJlZEJ1
ZmZlcjsKIH0KIAorbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsK
Kworc3RydWN0IEdsb2JhbEZyYW1lSUQgeworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2Vi
UGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOworICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOworCisgICAgdW5zaWduZWQgaGFzaCgp
IGNvbnN0OworfTsKKworaW5saW5lIHVuc2lnbmVkIEdsb2JhbEZyYW1lSUQ6Omhhc2goKSBjb25z
dAoreworICAgIHVuc2lnbmVkIGhhc2hlc1syXTsKKyAgICBoYXNoZXNbMF0gPSBXVEY6OmludEhh
c2god2ViUGFnZUlELnRvVUludDY0KCkpOworICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChm
cmFtZUlELnRvVUludDY0KCkpOworCisgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9y
eShoYXNoZXMsIHNpemVvZihoYXNoZXMpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBHbG9iYWxGcmFtZUlEJiBhLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBiKQoreworICAgIC8v
IE5vIG5lZWQgdG8gY2hlY2sgd2ViUGFnZVByb3h5SUQgc2luY2Ugd2ViUGFnZUlEcyBhcmUgZ2xv
YmFsbHkgdW5pcXVlIGFuZCBhIGdpdmVuIFdlYlBhZ2UgaXMgYWx3YXlzCisgICAgLy8gYXNzb2Np
YXRlZCB3aXRoIHRoZSBzYW1lIFdlYlBhZ2VQcm94eS4KKyAgICByZXR1cm4gYS53ZWJQYWdlSUQg
PT0gYi53ZWJQYWdlSUQgJiYgIGEuZnJhbWVJRCA9PSBiLmZyYW1lSUQ7Cit9CisKK307Cit9Owor
CituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKKyAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6
TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9
OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEPiB7CisgICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKworICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYg
c2xvdCkgeyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsg
fQorCisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUlu
dDY0KCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Cit9OworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFs
RnJhbWVJRD4geworICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKK307CisKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpAQCAtOTAsMzAg
KzE0Miw2IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9FeHBpcmVkUmVk
aXJlY3QKIH07CiAKLXN0cnVjdCBHbG9iYWxGcmFtZUlEIHsKLSAgICBXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHdlYlBhZ2VQcm94eUlEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRDsKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKLSAgICAKLSAgICB1
bnNpZ25lZCBoYXNoKCkgY29uc3Q7Ci19OwotCi1pbmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJ
RDo6aGFzaCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgaGFzaGVzWzJdOwotICAgIGhhc2hlc1sw
XSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7Ci0gICAgaGFzaGVzWzFdID0g
V1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nSGFz
aGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOwotfQotCi1pbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQm
IGIpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQ
YWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMK
LSAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5LgotICAgIHJldHVy
biBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsK
LX0KLQogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3Rp
bmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUg
ZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KICAgICBUZXN0
aW5nTW9kZSA9IDEgPDwgMCwKQEAgLTE3NSw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
dGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAgdm9pZCBicm93c2luZ0NvbnRl
eHRSZW1vdmVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworCiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsg
fQogICAgIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RvcmFnZURpcmVjdG9yeTsgfQpAQCAtMjAzLDYgKzIzMyw3IEBAIHByaXZhdGU6CiAKICNpZiBF
TkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQogICAgIEhhc2hNYXA8
S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1Jl
dmFsaWRhdGlvbnM7CisgICAgSGFzaE1hcDxHbG9iYWxGcmFtZUlELCBXVEY6OldlYWtIYXNoU2V0
PEFzeW5jUmV2YWxpZGF0aW9uPj4gbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25CeVBhZ2U7CiAj
ZW5kaWYKIAogICAgIHVuc2lnbmVkIG1fdHJhdmVyc2VDb3VudCB7IDAgfTsKQEAgLTIxMiwyNSAr
MjQzLDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgTmV0d29ya0NhY2hlCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXN0cnVjdCBHbG9iYWxGcmFtZUlE
SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQotICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBh
LCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYikgeyByZXR1cm4g
YSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4gewotICAgIHN0YXRpYyBXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0KLSAg
ICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgc2xvdC53ZWJQYWdlSUQgPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDY0X3Q+OjptYXgoKSk7IH0KLQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHJldHVybiBzbG90
LndlYlBhZ2VJRC50b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+Ojpt
YXgoKTsgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViS2l0OjpOZXR3
b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKLSAgICB0eXBlZGVmIEdsb2JhbEZyYW1lSURIYXNo
IEhhc2g7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXgg
OGMxN2UyZDM4NWM1OGM1ZTE2MzlmNWNjMGZkZDk2NTI2OGRiMjM0Zi4uMWZlY2RjODVhNTE0Y2Ex
ODA2YzM5ZTMwYWY5NTQ5OGIzZWRlNmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVM
b2FkLmNwcApAQCAtNjcsNiArNjcsMTUgQEAgU3BlY3VsYXRpdmVMb2FkOjp+U3BlY3VsYXRpdmVM
b2FkKCkKICAgICBBU1NFUlQoIW1fbmV0d29ya0xvYWQpOwogfQogCit2b2lkIFNwZWN1bGF0aXZl
TG9hZDo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9uZXR3b3JrTG9hZCkgeworICAgICAgICBtX25l
dHdvcmtMb2FkLT5jYW5jZWwoKTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7Cisg
ICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgfQorfQorCiB2b2lkIFNw
ZWN1bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZVByZWxvYWRpbmcsICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIsIHJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgKaW5kZXgg
NGYwYmNmODYzYzczMDgzZjMyNmUyNzRlNzQzMzIwMmUzOGRiMGE3OS4uY2VjZDVmZmZiNGNjODY3
N2Q4NWE3OGU0YjFiNmM4MzNiNzU0OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9h
ZC5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbFJl
cXVlc3Q7IH0KIAorICAgIHZvaWQgY2FuY2VsKCk7CisKIHByaXZhdGU6CiAgICAgLy8gTmV0d29y
a0xvYWRDbGllbnQuCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0
ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBvdmVycmlkZSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcAppbmRleCBjNDdiODc2NTMzNDI4YmNkMTBjMDUwNTlmMTgzYzc3NTVmZGRm
NjRkLi44ZDhhZTMxYzVkMzE1MzQ5YWZhODdhNzY4N2JkYTUwNDJhZTIwOTc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCkBAIC02MjksNiArNjI5LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2Fk
Q29tcGxldGVkKFBhZ2UmIHBhZ2UpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQYWdlTG9hZENvbXBsZXRlZChXZWJQYWdlOjpm
cm9tQ29yZVBhZ2UocGFnZSkuaWRlbnRpZmllcigpKSwgMCk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoRnJhbWUmIGZyYW1lKQoreworICAgIEFT
U0VSVChmcmFtZS5wYWdlKCkpOworICAgIGF1dG8mIHBhZ2UgPSBXZWJQYWdlOjpmcm9tQ29yZVBh
Z2UoKmZyYW1lLnBhZ2UoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCcm93c2luZ0NvbnRleHRSZW1vdmVkKHBhZ2Uud2Vi
UGFnZVByb3h5SWRlbnRpZmllcigpLCBwYWdlLmlkZW50aWZpZXIoKSwgV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpLT5mcmFtZUlEKCkpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVy
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5oCmluZGV4IDlhNzhhNWZlMjRkYTc4YjM0ZWJlZmE3ODVhMDdiNTA0OWJhNDcz
YmEuLjIyZjY0NGZkN2Y0NTBkMzJlYTQ1Zjk3ZTI3NDg4ZWY1ZjM0YzE1M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApA
QCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6
RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFs
OwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRl
ciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9y
PGNoYXI+JiBkYXRhKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKFdlYkNvcmU6
OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViQ29yZTo6
RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
KikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYmQw
Y2EzNmY4YWRiNmM2NmJmYTAzN2IwNTE1OWJhNDVjYjUwYzUyOC4uNGE4ZTFkN2RlNjBiMTJhMDMx
NjlhNzBkZTM5NTZjNWVhMzA0ZjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApA
QCAtMTE1LDYgKzExNSwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxv
YWRDb21wbGV0ZWQoUGFnZSYpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJikKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVx
dWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRl
cikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJD
b3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ZWM4YTQ5NGJjYTJi
MGQ1NzEzNTVhM2MzZTZmZGI1MjVhZDZiODRkLi43NTZhMDAzYTFkODg0ZjA1NGMzOWE1MDhhODNm
ZGI4MzM1NDk0Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTQ3LDYgKzQ3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBs
b25nLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVk
ZW50aWFsUG9saWN5LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3Jl
OjpIVFRQSGVhZGVyTWFwJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKSBmaW5hbDsKICAgICB2b2lkIHBhZ2VMb2FkQ29t
cGxldGVkKFdlYkNvcmU6OlBhZ2UmKSBmaW5hbDsKKyAgICB2b2lkIGJyb3dzaW5nQ29udGV4dFJl
bW92ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyJiwgYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCBlM2ZlYzJmMWVlMDc1MDZhNjIwYjJiNzg3ZDhmYjY5MWRiMWEyMTYyLi4wMmNm
ZTJjOTViODU1ODljN2EwNDk3ZTdmZWNkMmRlN2NiZGEwMGY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMS0yNCAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdo
aWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZnJhbWUgcmVtb3Zh
bCB0cmlnZ2VycyByZXZhbGlkYXRpb24gY2FuY2VsbGF0aW9uLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
dGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3Vy
Y2VzL3N0YWxlLWZyYW1lLnB5OiBBZGRlZC4KKyAgICAgICAgKGlkX3Rva2VuKToKKyAgICAgICAg
KG1haW4pOgorCiAyMDIwLTAxLTIyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgRml4IGZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci1vcmlnaW4td29ya2VyLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzRlYjYwNTM2YzY1MzQxOGQ5M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFs
ZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorICAKKworUEFTUyBGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRh
dGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxl
LXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWYzNGVm
ODFmZDA1NGQxODYyOTk1YThjYmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxl
LXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhhdCBmcmFtZSBy
ZW1vdmFsIGNhbmNlbHMgaXRzIHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24v
dXRpbHMuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CisgIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3QgdXJsID0gYHJl
c291cmNlcy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgorCisgIC8vIGZp
cnN0IGZyYW1lIGxvYWQKKyAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgIGZyYW1lLnNyYyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAg
IC8vIHNlY29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAgICBsZXQgZnJh
bWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJhbWUyLnNyYyA9
IHVybDsKKyAgICBmcmFtZTIub25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVtb3ZlIGZyYW1l
LCBjYW5jZWxpbmcgcmV2YWxpZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7CisgICAgICAv
LyB0aGlyZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisgICAgICBsZXQg
ZnJhbWUzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBmcmFtZTMu
c3JjID0gdXJsOworICAgICAgZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAgZmV0Y2go
InJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVzdF90b2tlbiku
dGhlbih0LnN0ZXBfZnVuYygocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICB9KSk7CisgICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGZyYW1lMyk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUyKTsK
KyAgfQorICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdGcmFtZSByZW1v
dmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFi
ODEwZjFjZmUzZDZkODNjN2FlYmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAsMCArMSwzOCBA
QAoraW1wb3J0IHJhbmRvbSwgc3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYgaWRfdG9rZW4o
KToKKyAgIGxldHRlcnMgPSBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1cm4gJycuam9p
bihyYW5kb20uY2hvaWNlKGxldHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKworZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVlc3QuaGVhZGVy
cy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmly
c3QoInRva2VuIiwgTm9uZSkKKyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZpcnN0KCJxdWVy
eSIsIE5vbmUpICE9IE5vbmUKKyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNoLmxvY2s6Cisg
ICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICBjb3Vu
dCA9IDAKKyAgICAgIGlmIHZhbHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0gaW50KHZhbHVl
KQorICAgICAgaWYgaXNfcXVlcnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAgICAgICAgICBy
ZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxzZToKKyAgICAg
ICAgaWYgaXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNvdW50ID0gY291
bnQgKyAxCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisK
KyAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1lLnNsZWVwKDUp
OworCisgICAgaWYgaXNfcXVlcnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQiLCBjb3VudCks
ICgiVGVzdCIsIHN0cihyZXF1ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250ZW50ID0gIiIK
KyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgorICAgICAgdW5p
cXVlX2lkID0gaWRfdG9rZW4oKQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L2h0bWwiKSwKKyAgICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgInByaXZhdGUs
IG1heC1hZ2U9MCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAgICAgICAgICAg
ICAoIkVUYWciLCAnInN3ciInKSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUtSWQiLCB1bmlx
dWVfaWQpXQorICAgICAgY29udGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1hdCh1bmlxdWVf
aWQpCisgICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388838</attachid>
            <date>2020-01-27 00:44:19 -0800</date>
            <delta_ts>2020-01-27 01:10:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200127094418.patch</filename>
            <type>text/plain</type>
            <size>29662</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI3NTQ3MzhkNTg1NWM2
YTE4MmQxYjFjNDE4NmZkNDE5MDk4Njg1NS4uZmQ0N2EwOGU0NjQxZjRmOWQwMjUwZDQ3Nzk5Yzcw
MTU4ZWM5NjgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAxLTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMjAtMDEtMjYgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgRE9NQ2FjaGVFbmdpbmU6
OmVycm9yVG9FeGNlcHRpb24gYmFjayBvdXQgb2YgaGVhZGVyIGFuZCBpbnRvIC5jcHAgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAyOWNiMjNiZmUzYTEwY2FkNTIyNmQzMWJiODg5NjhmYWI1NGFhYWY1Li42ZGVi
ZDhlYzA3ZGIzY2IwMTk2Yjk5YzVkMGZjZTg4N2U0OTVmNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDIwLTAxLTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlk
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBtZXNzYWdlIGZvciBicm93c2luZyBjb250ZXh0IHJlbW92YWwuIFdoZW4gdGhlIG1lc3Nh
Z2UgaGFwcGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3b3JrIGNhY2hlIHRv
IHJlbW92ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRpb25zIGZvciB0aGF0
IHBhZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6QXN5bmNSZXZhbGlkYXRpb246OmNhbmNlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNh
Y2hlOjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkNhY2hlOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0NhY2hlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdURjo6R2xvYmFsRnJhbWVJREhh
c2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6ZXF1YWwpOgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6aXNE
ZWxldGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3Bl
Y3VsYXRpdmVMb2FkOjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAyMC0wMS0yNiAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW2N1cmxdIEFTU0VS
VElPTiBGQUlMRUQ6IHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpIGluIE5ldHdvcmtQcm9jZXNzIHNpbmNlIHIyNTUwNjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5k
ZXggYzEzZTkwMjkyNjRhY2RjY2Y4MmY1MGFlNTQ1ZWYwNTY3OGVlMGJkMy4uYjdmYjRkZTEyZjRh
Yzg3ZjNjNmRkZDE3NmY5OGE4NzI1ZTYxZTRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wMS0yNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2
YWxpZGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUHJvdmlkZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6
CisKIDIwMjAtMDEtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBjaGVjay14Y2ZpbGVsaXN0cy5zaCBmcm9tIFdlYktpdExlZ2FjeSBYY29kZSBi
dWlsZCB0YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGExMjg1
ODUxZjI1OWQ4MmE2M2E4NmRlNThjNTNkZTNlM2IwMmQ5MTQuLjc4YzUyMzVkZTliMTgwZmYyYzI4
MjFkZTk4ZDJjYzBhNmMyMTgwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTg0MSw2ICsxODQxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMo
Q2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICAgICAg
bV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogICAgIGlmIChtX2Rv
Y3VtZW50TG9hZGVyKQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwor
ICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSAmJiAhbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSkKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVz
KCktPmxvYWRlclN0cmF0ZWd5KCktPmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoZnJhbWUoKSk7CiAK
ICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJlc291cmNlTG9hZGluZywg
InN0b3BBbGxMb2FkZXJzOiBDbGVhcmluZyBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIgKG1f
cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcj0lcCkiLCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2Fk
ZXIuZ2V0KCkpOwogICAgIHNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIobnVsbHB0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDA2NDRmZWM1MDllNjBmN2E0
Y2Y1OWEzNTJmMzIzMzVjMmQxNjRkOTkuLjU3OWQ5MDM4ZjMxN2Q0NWQyN2M4NGEyN2UzZjIxY2Zm
MGFlOGZkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVn
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OSw2
ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwg
Q2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+
JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0
IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYgZGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChQ
YWdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1l
JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRlciopID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciYsIGJvb2wp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTdiYzE0MGUzNzU5ZTBjMWEz
ZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5MjdmZjExMDk5NzhkOGMyODc2ZmFlYmI4OGUzMGM2
ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5Nyw2ICs0OTcsMTQg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQo
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFj
a2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciB3
ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0g
c2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5icm93c2luZ0NvbnRleHRSZW1v
dmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1lSUQpOworICAgIH0KK30KKwog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3Ry
aW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVmZXRjaEROUyhob3N0
bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2Q0OTljMTNmOTJhZWJiNjE4MzEx
NGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2ZiYjk0ZGRiZjBlZmMxMGZlZWU4OTg2Yjc1MTU5
ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTk1LDYgKzE5NSw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVy
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoRG93bmxv
YWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
ODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzkyMThhOTgzY2Q2NS4uNjAxODZmNWRlNjlkOTU3
MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2FkUGluZyhXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAg
ICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikK
ICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQp
CisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5n
IGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1aW50NjRfdD4gcHJlY29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9h
ZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCmluZGV4IDU2Nzg0ZWQ2Y2NiOTNkNjMxM2RmNjgxOWMwYTUwNDEzZmFkZTQ2
ZGEuLjFlMmI2MWQ1ZmQzMDIwYTdlN2I5ZTczMzk3MjI2ZWVlNTQzZjZmODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NCw3ICs0
NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Fz
eW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
QXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3ZmVmNWE4MWExYzNlM2VmNmFi
OWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5ZDdhNTBlMTA4NTFiOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNS
ZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0KGNvbnN0IEtleSYg
awogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQogCit2b2lkIEFzeW5jUmV2YWxp
ZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisgICAgICAgIG1fbG9hZC0+Y2Fu
Y2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0YWxlV2hpbGVSZXZhbGlkYXRl
RW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaAppbmRl
eCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQxMjliLi4wZWM4OWY3OGMwZTM3
YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlTG9hZDsK
IAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIHsK
K2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEFzeW5jUmV2
YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1
Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihDYWNoZSYsIGNvbnN0IEdsb2Jh
bEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXN1bHQp
PiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3QgU3BlY3VsYXRpdmVMb2FkJiBs
b2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNDI4YmJiOGY2MmFl
MDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4uZThiMDRjNmFmOWZjNDlhOWVhNTkyYjU1NmI1
ODkyMGQyYmU0NWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTksMzEgQEAgc3RhdGljIGJvb2wg
aW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNo
ZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFs
RnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMuZW5z
dXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRp
b24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0o
QXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgYXV0byBhZGRSZXN1
bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5lbnN1cmUoZnJhbWVJRCwgW10g
eworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5jUmV2YWxpZGF0aW9uPigpOwor
ICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24gPSBtYWtlVW5pcXVlPEFzeW5j
UmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIFt0
aGlzLCBrZXldKGF1dG8gcmVzdWx0KSB7CisgICAgICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLmNvbnRhaW5zKGtleSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNo
ZSwgIihOZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVz
JyB3aXRoIHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGlj
X2Nhc3Q8aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUuYWRkKCpyZXZhbGlkYXRpb24pOworICAgICAgICByZXR1cm4gcmV2YWxpZGF0
aW9uOwogICAgIH0pOwogfQogI2VuZGlmCiAKK3ZvaWQgQ2FjaGU6OmJyb3dzaW5nQ29udGV4dFJl
bW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJ
RCkKK3sKKyNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQor
ICAgIGF1dG8gbG9hZGVycyA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2Uo
eyB3ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEIH0pOworICAgIGZvciAoYXV0
byYgbG9hZGVyIDogbG9hZGVycykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJyb3dzaW5n
Q29udGV4dFJlbW92ZWQgY2FuY2VsISEhXG4iKTsKKyAgICAgICAgbG9hZGVyLmNhbmNlbCgpOwor
ICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIFJl
dHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQocmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggY2NmYzk4
YTM2MzBhZmUyZTY0YmI1OWNjNDY5YTFmNzA2YWY2MDFhZS4uMzFkNmZkOWRiZjRlZjk1ZjMzNTY5
NThlODM0ZjMyZThjYWNiZDRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1
ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDYg
KzQ1LDU4IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIH0K
IAorbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKKworc3RydWN0
IEdsb2JhbEZyYW1lSUQgeworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5
SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOworICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOworCisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0Owor
fTsKKworaW5saW5lIHVuc2lnbmVkIEdsb2JhbEZyYW1lSUQ6Omhhc2goKSBjb25zdAoreworICAg
IHVuc2lnbmVkIGhhc2hlc1syXTsKKyAgICBoYXNoZXNbMF0gPSBXVEY6OmludEhhc2god2ViUGFn
ZUlELnRvVUludDY0KCkpOworICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChmcmFtZUlELnRv
VUludDY0KCkpOworCisgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShoYXNoZXMs
IHNpemVvZihoYXNoZXMpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9i
YWxGcmFtZUlEJiBhLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBiKQoreworICAgIC8vIE5vIG5lZWQg
dG8gY2hlY2sgd2ViUGFnZVByb3h5SUQgc2luY2Ugd2ViUGFnZUlEcyBhcmUgZ2xvYmFsbHkgdW5p
cXVlIGFuZCBhIGdpdmVuIFdlYlBhZ2UgaXMgYWx3YXlzCisgICAgLy8gYXNzb2NpYXRlZCB3aXRo
IHRoZSBzYW1lIFdlYlBhZ2VQcm94eS4KKyAgICByZXR1cm4gYS53ZWJQYWdlSUQgPT0gYi53ZWJQ
YWdlSUQgJiYgIGEuZnJhbWVJRCA9PSBiLmZyYW1lSUQ7Cit9CisKK307Cit9OworCituYW1lc3Bh
Y2UgV1RGIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWdu
ZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5KSB7
IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFt
ZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFt
ZUlEPiB7CisgICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGVt
cHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyBz
bG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorCisgICAg
c3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okds
b2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkgPT0g
c3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Cit9OworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4g
eworICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKK307CisKK30KKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpAQCAtOTAsMzAgKzE0Myw2IEBA
IGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9FeHBpcmVkUmVkaXJlY3QKIH07
CiAKLXN0cnVjdCBHbG9iYWxGcmFtZUlEIHsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKLSAg
ICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKLSAgICAKLSAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3Q7Ci19OwotCi1pbmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgp
IGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgaGFzaGVzWzJdOwotICAgIGhhc2hlc1swXSA9IFdURjo6
aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7Ci0gICAgaGFzaGVzWzFdID0gV1RGOjppbnRI
YXNoKGZyYW1lSUQudG9VSW50NjQoKSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNo
TWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCi17Ci0g
ICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFy
ZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKLSAgICAvLyBh
c3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5LgotICAgIHJldHVybiBhLndlYlBh
Z2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsKLX0KLQogZW51
bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3
ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qg
c2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KICAgICBUZXN0aW5nTW9kZSA9
IDEgPDwgMCwKQEAgLTE3NSw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEFzeW5j
UmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEds
b2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVk
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOworCiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
KCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIGNv
bnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZURp
cmVjdG9yeTsgfQpAQCAtMjAzLDYgKzIzNCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoTkVU
V09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQogICAgIEhhc2hNYXA8S2V5LCBzdGQ6
OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlv
bnM7CisgICAgSGFzaE1hcDxHbG9iYWxGcmFtZUlELCBXZWFrSGFzaFNldDxBc3luY1JldmFsaWRh
dGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlOwogI2VuZGlmCiAKICAgICB1
bnNpZ25lZCBtX3RyYXZlcnNlQ291bnQgeyAwIH07CkBAIC0yMTIsMjUgKzI0NCwzIEBAIHByaXZh
dGU6CiAKIH0gLy8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggewotICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFt
ZUlEJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2Jh
bEZyYW1lSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCi0gICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
JiBzbG90KSB7IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkp
OyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9V
SW50NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9i
YWxGcmFtZUlEPiB7Ci0gICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOwotfTsKLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDhjMTdlMmQzODVjNThj
NWUxNjM5ZjVjYzBmZGQ5NjUyNjhkYjIzNGYuLjFmZWNkYzg1YTUxNGNhMTgwNmMzOWUzMGFmOTU0
OThiM2VkZTZhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTY3
LDYgKzY3LDE1IEBAIFNwZWN1bGF0aXZlTG9hZDo6flNwZWN1bGF0aXZlTG9hZCgpCiAgICAgQVNT
RVJUKCFtX25ldHdvcmtMb2FkKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCgp
Cit7CisgICAgaWYgKG1fbmV0d29ya0xvYWQpIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZC0+Y2Fu
Y2VsKCk7CisgICAgICAgIG1fbmV0d29ya0xvYWQgPSBudWxscHRyOworICAgICAgICBtX2NvbXBs
ZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgIH0KK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWQ6
OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5n
LCAiU3BlY3VsYXRpdmUgcmVkaXJlY3QgJXMgLT4gJXMiLCByZXF1ZXN0LnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIHJlZGlyZWN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oCmluZGV4IDRmMGJjZjg2M2M3MzA4
M2YzMjZlMjc0ZTc0MzMyMDJlMzhkYjBhNzkuLmNlY2Q1ZmZmYjRjYzg2NzdkODVhNzhlNGIxYjZj
ODMzYjc1NDkyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaApAQCAtNTEsNiAr
NTEsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYWxSZXF1ZXN0OyB9CiAKKyAg
ICB2b2lkIGNhbmNlbCgpOworCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50Lgog
ICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWdu
ZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
aW5kZXggYzQ3Yjg3NjUzMzQyOGJjZDEwYzA1MDU5ZjE4M2M3NzU1ZmRkZjY0ZC4uOGQ4YWUzMWM1
ZDMxNTM0OWFmYTg3YTc2ODdiZGE1MDQyYWUyMDk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNjI5LDYg
KzYyOSwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZChQYWdl
JiBwYWdlKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UGFnZUxvYWRDb21wbGV0ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBh
Z2UpLmlkZW50aWZpZXIoKSksIDApOwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93
c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBBU1NFUlQoZnJhbWUucGFn
ZSgpKTsKKyAgICBhdXRvJiBwYWdlID0gV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCpmcmFtZS5wYWdl
KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6QnJvd3NpbmdDb250ZXh0UmVtb3ZlZChwYWdlLndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKSwgcGFnZS5pZGVudGlmaWVyKCksIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KS0+ZnJhbWVJRCgpKSwgMCk7Cit9CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVu
dGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApp
bmRleCA5YTc4YTVmZTI0ZGE3OGIzNGViZWZhNzg1YTA3YjUwNDliYTQ3M2JhLi4yMmY2NDRmZDdm
NDUwZDMyZWE0NWY5N2UyNzQ4OGVmNWYzNGMxNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTU0LDYgKzU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBs
b25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkg
ZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7
CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAg
IHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGJkMGNhMzZmOGFkYjZjNjZi
ZmEwMzdiMDUxNTliYTQ1Y2I1MGM1MjguLjRhOGUxZDdkZTYwYjEyYTAzMTY5YTcwZGUzOTU2YzVl
YTMwNGY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExNSw2ICsxMTUs
MTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKFBh
Z2UmKQogewogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250
ZXh0UmVtb3ZlZChGcmFtZSYpCit7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxX
ZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggOGVjOGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2
ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAwM2ExZDg4NGYwNTRjMzlhNTA4YTgzZmRiODMzNTQ5NDI3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1
YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwg
Y29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
VmVjdG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3Jl
OjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6
OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
ciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZTI2
MzA0MmY3ZmE1YzkyZTlhNGQ0ZmFlZTVhOGUwN2NmNzZhNWVjNC4uZTUzYzE2OTc3Yjc5MjQ4M2Zh
NzkzYjU3ZTljMGZkOWZmMjJiYmI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMjAtMDEtMjcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRl
IHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGZyYW1lIHJlbW92YWwgdHJpZ2dlcnMgcmV2
YWxpZGF0aW9uIGNhbmNlbGxhdGlvbi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2
YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFt
ZS5weTogQWRkZWQuCisgICAgICAgIChpZF90b2tlbik6CisgICAgICAgIChtYWluKToKKwogMjAy
MC0wMS0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIE1lZGlhUmVjb3JkZXIucmVxdWVzdERhdGEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9m
cmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzRlYjYwNTM2YzY1MzQxOGQ5
M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRl
L2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorICAKKworUEFTUyBG
cmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3Rh
bGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUv
ZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWYzNGVmODFmZDA1NGQxODYyOTk1YThj
YmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUt
cmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhhdCBmcmFtZSByZW1vdmFsIGNhbmNlbHMgaXRz
IHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0
PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgIHZhciByZXF1
ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3QgdXJsID0gYHJlc291cmNlcy9zdGFsZS1mcmFt
ZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgorCisgIC8vIGZpcnN0IGZyYW1lIGxvYWQKKyAg
bGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgIGZyYW1lLnNy
YyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAgIC8vIHNlY29uZCBmcmFtZSBs
b2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAgICBsZXQgZnJhbWUyID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJhbWUyLnNyYyA9IHVybDsKKyAgICBmcmFtZTIu
b25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVtb3ZlIGZyYW1lLCBjYW5jZWxpbmcgcmV2YWxp
ZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7CisgICAgICAvLyB0aGlyZCBmcmFtZSBsb2Fk
LCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisgICAgICBsZXQgZnJhbWUzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBmcmFtZTMuc3JjID0gdXJsOworICAgICAg
ZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9zdGFsZS1m
cmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVzdF90b2tlbikudGhlbih0LnN0ZXBfZnVuYygo
cmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMu
Z2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KSk7Cisg
ICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lMyk7CisgICAgfQor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUyKTsKKyAgfQorICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwg
aXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGls
ZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9y
ZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFiODEwZjFjZmUzZDZkODNjN2Fl
YmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9y
ZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAsMCArMSwzOCBAQAoraW1wb3J0IHJhbmRvbSwg
c3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYgaWRfdG9rZW4oKToKKyAgIGxldHRlcnMgPSBz
dHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1cm4gJycuam9pbihyYW5kb20uY2hvaWNlKGxl
dHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2Up
OgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIklmLU5vbmUtTWF0
Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIiwgTm9uZSkK
KyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZpcnN0KCJxdWVyeSIsIE5vbmUpICE9IE5vbmUK
KyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNoLmxvY2s6CisgICAgICB2YWx1ZSA9IHJlcXVl
c3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICBjb3VudCA9IDAKKyAgICAgIGlmIHZh
bHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0gaW50KHZhbHVlKQorICAgICAgaWYgaXNfcXVl
cnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAgICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFz
aC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxzZToKKyAgICAgICAgaWYgaXNfcmV2YWxpZGF0
aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNvdW50ID0gY291bnQgKyAxCisgICAgICAgIHJl
cXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisKKyAgICBpZiBpc19yZXZhbGlk
YXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1lLnNsZWVwKDUpOworCisgICAgaWYgaXNfcXVl
cnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQiLCBjb3VudCksICgiVGVzdCIsIHN0cihyZXF1
ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250ZW50ID0gIiIKKyAgICAgIHJldHVybiAyMDAs
IGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgorICAgICAgdW5pcXVlX2lkID0gaWRfdG9rZW4o
KQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiKSwKKyAgICAg
ICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgInByaXZhdGUsIG1heC1hZ2U9MCwgc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAgICAgICAgICAgICAoIkVUYWciLCAnInN3ciIn
KSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUtSWQiLCB1bmlxdWVfaWQpXQorICAgICAgY29u
dGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1hdCh1bmlxdWVfaWQpCisgICAgICByZXR1cm4g
MjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388839</attachid>
            <date>2020-01-27 01:10:56 -0800</date>
            <delta_ts>2020-02-07 00:41:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200127101054.patch</filename>
            <type>text/plain</type>
            <size>30421</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI3NTQ3MzhkNTg1NWM2
YTE4MmQxYjFjNDE4NmZkNDE5MDk4Njg1NS4uNWFkMzYxZmY2ZTRlNzg0ZDkwMDM4YzBmN2YzZDBm
NWQxZmJmNWFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
OjpjYW5Vc2VDYWNoZVZhbGlkYXRvciBjb25zdCk6CisKIDIwMjAtMDEtMjYgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgRE9NQ2FjaGVFbmdpbmU6OmVycm9y
VG9FeGNlcHRpb24gYmFjayBvdXQgb2YgaGVhZGVyIGFuZCBpbnRvIC5jcHAgZmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAyOWNiMjNiZmUzYTEwY2FkNTIyNmQzMWJiODg5NjhmYWI1NGFhYWY1Li42ZGViZDhlYzA3
ZGIzY2IwMTk2Yjk5YzVkMGZjZTg4N2U0OTVmNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDIwLTAxLTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFu
ZGxlIHBhZ2UgY2xvc3VyZSBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBt
ZXNzYWdlIGZvciBicm93c2luZyBjb250ZXh0IHJlbW92YWwuIFdoZW4gdGhlIG1lc3NhZ2UgaGFw
cGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3b3JrIGNhY2hlIHRvIHJlbW92
ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRpb25zIGZvciB0aGF0IHBhZ2Uu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpi
cm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9Bc3luY1JldmFsaWRhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
QXN5bmNSZXZhbGlkYXRpb246OmNhbmNlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQXN5bmNSZXZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpz
dGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkNhY2hlOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdURjo6R2xvYmFsRnJhbWVJREhhc2g6Omhh
c2gpOgorICAgICAgICAoV1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6ZXF1YWwpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6ZW1w
dHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpI
YXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6aXNEZWxldGVk
VmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1
bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRp
dmVMb2FkOjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpi
cm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAyMC0wMS0yNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9y
aS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW2N1cmxdIEFTU0VSVElPTiBG
QUlMRUQ6IHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIGlu
IE5ldHdvcmtQcm9jZXNzIHNpbmNlIHIyNTUwNjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggYzEz
ZTkwMjkyNjRhY2RjY2Y4MmY1MGFlNTQ1ZWYwNTY3OGVlMGJkMy4uYjdmYjRkZTEyZjRhYzg3ZjNj
NmRkZDE3NmY5OGE4NzI1ZTYxZTRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMC0wMS0yNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJv
dmlkZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAg
ICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIw
MjAtMDEtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBjaGVjay14Y2ZpbGVsaXN0cy5zaCBmcm9tIFdlYktpdExlZ2FjeSBYY29kZSBidWlsZCB0
YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGExMjg1ODUxZjI1
OWQ4MmE2M2E4NmRlNThjNTNkZTNlM2IwMmQ5MTQuLjc4YzUyMzVkZTliMTgwZmYyYzI4MjFkZTk4
ZDJjYzBhNmMyMTgwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAt
MTg0MSw2ICsxODQxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQ
cm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICAgICAgbV9wcm92
aXNpb25hbERvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogICAgIGlmIChtX2RvY3VtZW50
TG9hZGVyKQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOworICAgIGlm
IChtX2ZyYW1lLnBhZ2UoKSAmJiAhbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmlz
U1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSkKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoZnJhbWUoKSk7CiAKICAgICBG
UkFNRUxPQURFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgInN0b3BB
bGxMb2FkZXJzOiBDbGVhcmluZyBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIgKG1fcHJvdmlz
aW9uYWxEb2N1bWVudExvYWRlcj0lcCkiLCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIuZ2V0
KCkpOwogICAgIHNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIobnVsbHB0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDA2NDRmZWM1MDllNjBmN2E0Y2Y1OWEz
NTJmMzIzMzVjMmQxNjRkOTkuLjU3OWQ5MDM4ZjMxN2Q0NWQyN2M4NGEyN2UzZjIxY2ZmMGFlOGZk
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OSw2ICs1OSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwgQ2FjaGVk
UmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVM
b2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0IEhUVFBI
ZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFy
PiYgZGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChQYWdlJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRlciopID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciYsIGJvb2wpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4
IGM3NWIzZGMwYjJjNGZhNDc1OTAzZDMzMWE5MjJiMTgwNDgwZGRlZjQuLmMyNjU5Nzk3YjA2MjVh
MzRhZTJmMzQxMmUwZDc0NDViOWE2ODE0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtODE3LDYgKzgxNyw5IEBAIGJvb2wgQ2FjaGVk
UmVzb3VyY2U6OmNhblVzZUNhY2hlVmFsaWRhdG9yKCkgY29uc3QKIAogICAgIGlmIChtX3Jlc3Bv
bnNlLmNhY2hlQ29udHJvbENvbnRhaW5zTm9TdG9yZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgLy8gTmV0d29yayBwcm9jZXNzIHdpbGwgaGFuZGxlIHJldmFsaWRhdGlvbiBmb3Igcy13
LXIuCisgICAgaWYgKG1fcmVzcG9uc2UuY2FjaGVDb250cm9sU3RhbGVXaGlsZVJldmFsaWRhdGUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBtX3Jlc3BvbnNlLmhhc0NhY2hl
VmFsaWRhdG9yRmllbGRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
YTdiYzE0MGUzNzU5ZTBjMWEzZDMzM2Q0NDBiOTBlN2FlNjk5MWVlZi4uZDE5MjdmZjExMDk5Nzhk
OGMyODc2ZmFlYmI4OGUzMGM2ZjJhYmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTQ5Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cGFnZUxvYWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxO
ZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQs
IEZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5i
cm93c2luZ0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1l
SUQpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJl
ZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNz
LT5wcmVmZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2Q0
OTljMTNmOTJhZWJiNjE4MzExNGNlNzAxNGMxNTgzMDZkYzZiNi4uMGYzZWUwN2ZiYjk0ZGRiZjBl
ZmMxMGZlZWU4OTg2Yjc1MTU5ODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTk1
LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJl
c291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNv
dXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0
YXJ0RG93bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggODdiNjk0ZTIxNDBhMzZkZmY0OGNkNmIzMDdhMzkyMThhOTgzY2Q2
NS4uNjAxODZmNWRlNjlkOTU3MzhmMDVjYjY4YjE5NTE1MGQzN2E3MjI5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNl
TG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAg
UHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1
aW50NjRfdD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDU2Nzg0ZWQ2Y2NiOTNkNjMxM2Rm
NjgxOWMwYTUwNDEzZmFkZTQ2ZGEuLjFlMmI2MWQ1ZmQzMDIwYTdlN2I5ZTczMzk3MjI2ZWVlNTQz
ZjZmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2ll
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUg
Ik5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3
ZmVmNWE4MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5
ZDdhNTBlMTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0
aWMgaW5saW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25S
ZXF1ZXN0KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQog
Cit2b2lkIEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisg
ICAgICAgIG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0
YWxlV2hpbGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNS
ZXZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNS
ZXZhbGlkYXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQx
MjliLi4wZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlv
bi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNz
IFNwZWN1bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFz
eW5jUmV2YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihD
YWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3Qg
U3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
aW5kZXggNDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4uZThiMDRjNmFm
OWZjNDlhOWVhNTkyYjU1NmI1ODkyMGQyYmU0NWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5LDE0ICszMTks
MzEgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZh
bGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBl
bnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3lu
Y1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVu
dHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAg
ICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5l
bnN1cmUoZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5j
UmV2YWxpZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24g
PSBtYWtlVW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwg
V1RGTW92ZShlbnRyeSksIFt0aGlzLCBrZXldKGF1dG8gcmVzdWx0KSB7CisgICAgICAgICAgICBB
U1NFUlQobV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLmNvbnRhaW5zKGtleSkpOwogICAgICAg
ICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOwogICAgICAgICAg
ICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9u
IGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRoIHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRm
OCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7CisgICAg
ICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKCpyZXZhbGlkYXRpb24pOworICAgICAg
ICByZXR1cm4gcmV2YWxpZGF0aW9uOwogICAgIH0pOwogfQogI2VuZGlmCiAKK3ZvaWQgQ2FjaGU6
OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJv
eHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgd2ViRnJhbWVJRCkKK3sKKyNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9X
SElMRV9SRVZBTElEQVRFKQorICAgIGF1dG8gbG9hZGVycyA9IG1fcGVuZGluZ0FzeW5jUmV2YWxp
ZGF0aW9uQnlQYWdlLnRha2UoeyB3ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlE
IH0pOworICAgIGZvciAoYXV0byYgbG9hZGVyIDogbG9hZGVycykgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgImJyb3dzaW5nQ29udGV4dFJlbW92ZWQgY2FuY2VsISEhXG4iKTsKKyAgICAgICAg
bG9hZGVyLmNhbmNlbCgpOworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIENhY2hlOjpyZXRyaWV2
ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZy
YW1lSUQmIGZyYW1lSUQsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQocmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmgKaW5kZXggY2NmYzk4YTM2MzBhZmUyZTY0YmI1OWNjNDY5YTFmNzA2YWY2MDFhZS4uMzFk
NmZkOWRiZjRlZjk1ZjMzNTY5NThlODM0ZjMyZThjYWNiZDRlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09w
dGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtI
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDYgKzQ1LDU4IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNz
IFNoYXJlZEJ1ZmZlcjsKIH0KIAorbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2UgTmV0d29y
a0NhY2hlIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSUQgeworICAgIFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgd2ViUGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOworCisgICAgdW5zaWdu
ZWQgaGFzaCgpIGNvbnN0OworfTsKKworaW5saW5lIHVuc2lnbmVkIEdsb2JhbEZyYW1lSUQ6Omhh
c2goKSBjb25zdAoreworICAgIHVuc2lnbmVkIGhhc2hlc1syXTsKKyAgICBoYXNoZXNbMF0gPSBX
VEY6OmludEhhc2god2ViUGFnZUlELnRvVUludDY0KCkpOworICAgIGhhc2hlc1sxXSA9IFdURjo6
aW50SGFzaChmcmFtZUlELnRvVUludDY0KCkpOworCisgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6
aGFzaE1lbW9yeShoYXNoZXMsIHNpemVvZihoYXNoZXMpKTsKK30KKworaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBHbG9iYWxGcmFtZUlEJiBhLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBiKQor
eworICAgIC8vIE5vIG5lZWQgdG8gY2hlY2sgd2ViUGFnZVByb3h5SUQgc2luY2Ugd2ViUGFnZUlE
cyBhcmUgZ2xvYmFsbHkgdW5pcXVlIGFuZCBhIGdpdmVuIFdlYlBhZ2UgaXMgYWx3YXlzCisgICAg
Ly8gYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIFdlYlBhZ2VQcm94eS4KKyAgICByZXR1cm4gYS53
ZWJQYWdlSUQgPT0gYi53ZWJQYWdlSUQgJiYgIGEuZnJhbWVJRCA9PSBiLmZyYW1lSUQ7Cit9CisK
K307Cit9OworCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsK
KyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xv
YmFsRnJhbWVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7
IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7CisgICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hl
OjpHbG9iYWxGcmFtZUlEIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKworICAgIHN0YXRp
YyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFs
RnJhbWVJRCYgc2xvdCkgeyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46
Om1heCgpKTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFn
ZUlELnRvVUludDY0KCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9
Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6R2xvYmFsRnJhbWVJRD4geworICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsK
K307CisKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpA
QCAtOTAsMzAgKzE0Myw2IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9F
eHBpcmVkUmVkaXJlY3QKIH07CiAKLXN0cnVjdCBHbG9iYWxGcmFtZUlEIHsKLSAgICBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHdlYlBhZ2VJRDsKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKLSAg
ICAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Ci19OwotCi1pbmxpbmUgdW5zaWduZWQgR2xv
YmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgaGFzaGVzWzJdOwotICAg
IGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7Ci0gICAgaGFz
aGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7Ci0KLSAgICByZXR1cm4g
U3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOwotfQotCi1p
bmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2Jh
bEZyYW1lSUQmIGIpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBz
aW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBp
cyBhbHdheXMKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5Lgot
ICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIu
ZnJhbWVJRDsKLX0KLQogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8v
IEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVz
cy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4K
ICAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKQEAgLTE3NSw2ICsyMDQsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8
RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAgdm9pZCBicm93
c2luZ0NvbnRleHRSZW1vdmVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworCiAgICAgTmV0d29ya1Byb2Nl
c3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQog
ICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nl
c3Npb25JRDsgfQogICAgIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RvcmFnZURpcmVjdG9yeTsgfQpAQCAtMjAzLDYgKzIzNCw3IEBAIHByaXZhdGU6
CiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQogICAg
IEhhc2hNYXA8S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRp
bmdBc3luY1JldmFsaWRhdGlvbnM7CisgICAgSGFzaE1hcDxHbG9iYWxGcmFtZUlELCBXZWFrSGFz
aFNldDxBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdl
OwogI2VuZGlmCiAKICAgICB1bnNpZ25lZCBtX3RyYXZlcnNlQ291bnQgeyAwIH07CkBAIC0yMTIs
MjUgKzI0NCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdHJ1Y3QgR2xvYmFsRnJh
bWVJREhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0
dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQot
Ci0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQ2NF90Pjo6bWF4KCkpOyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShj
b25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4g
c2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90
Pjo6bWF4KCk7IH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6
TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7Ci0gICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlE
SGFzaCBIYXNoOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmlu
ZGV4IDhjMTdlMmQzODVjNThjNWUxNjM5ZjVjYzBmZGQ5NjUyNjhkYjIzNGYuLjFmZWNkYzg1YTUx
NGNhMTgwNmMzOWUzMGFmOTU0OThiM2VkZTZhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5jcHAKQEAgLTY3LDYgKzY3LDE1IEBAIFNwZWN1bGF0aXZlTG9hZDo6flNwZWN1bGF0
aXZlTG9hZCgpCiAgICAgQVNTRVJUKCFtX25ldHdvcmtMb2FkKTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUxvYWQ6OmNhbmNlbCgpCit7CisgICAgaWYgKG1fbmV0d29ya0xvYWQpIHsKKyAgICAgICAg
bV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CisgICAgICAgIG1fbmV0d29ya0xvYWQgPSBudWxscHRy
OworICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgIH0KK30KKwogdm9p
ZCBTcGVjdWxhdGl2ZUxvYWQ6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29ya0NhY2hlU3Bl
Y3VsYXRpdmVQcmVsb2FkaW5nLCAiU3BlY3VsYXRpdmUgcmVkaXJlY3QgJXMgLT4gJXMiLCByZXF1
ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlZGlyZWN0UmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oCmlu
ZGV4IDRmMGJjZjg2M2M3MzA4M2YzMjZlMjc0ZTc0MzMyMDJlMzhkYjBhNzkuLmNlY2Q1ZmZmYjRj
Yzg2NzdkODVhNzhlNGIxYjZjODMzYjc1NDkyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2lu
YWxSZXF1ZXN0OyB9CiAKKyAgICB2b2lkIGNhbmNlbCgpOworCiBwcml2YXRlOgogICAgIC8vIE5l
dHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25n
IGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJp
ZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ3Yjg3NjUzMzQyOGJjZDEwYzA1MDU5ZjE4M2M3NzU1
ZmRkZjY0ZC4uOGQ4YWUzMWM1ZDMxNTM0OWFmYTg3YTc2ODdiZGE1MDQyYWUyMDk3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcApAQCAtNjI5LDYgKzYyOSwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdl
TG9hZENvbXBsZXRlZChQYWdlJiBwYWdlKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxvYWRDb21wbGV0ZWQoV2ViUGFn
ZTo6ZnJvbUNvcmVQYWdlKHBhZ2UpLmlkZW50aWZpZXIoKSksIDApOwogfQogCit2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJiBmcmFtZSkKK3sKKyAg
ICBBU1NFUlQoZnJhbWUucGFnZSgpKTsKKyAgICBhdXRvJiBwYWdlID0gV2ViUGFnZTo6ZnJvbUNv
cmVQYWdlKCpmcmFtZS5wYWdlKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QnJvd3NpbmdDb250ZXh0UmVtb3ZlZChwYWdl
LndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcGFnZS5pZGVudGlmaWVyKCksIFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKGZyYW1lKS0+ZnJhbWVJRCgpKSwgMCk7Cit9CisKIHN0YXRpYyB1aW50NjRf
dCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRp
ZmllciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5YTc4YTVmZTI0ZGE3OGIzNGViZWZhNzg1YTA3YjUwNDli
YTQ3M2JhLi4yMmY2NDRmZDdmNDUwZDMyZWE0NWY5N2UyNzQ4OGVmNWYzNGMxNTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNv
cmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBm
aW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVM
b2FkZXImLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNv
bnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAm
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZl
Y3RvcjxjaGFyPiYgZGF0YSkgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJD
b3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNv
cmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4
IGJkMGNhMzZmOGFkYjZjNjZiZmEwMzdiMDUxNTliYTQ1Y2I1MGM1MjguLjRhOGUxZDdkZTYwYjEy
YTAzMTY5YTcwZGUzOTU2YzVlYTMwNGY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKQEAgLTExNSw2ICsxMTUsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBh
Z2VMb2FkQ29tcGxldGVkKFBhZ2UmKQogewogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpCit7Cit9CisKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1l
LCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3Zl
KHJlcXVlc3QpLCBbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBs
b2FkZXIpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggOGVjOGE0OTRi
Y2EyYjBkNTcxMzU1YTNjM2U2ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAwM2ExZDg4NGYwNTRjMzlhNTA4
YTgzZmRiODMzNTQ5NDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00Nyw2ICs0
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYsIFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAgICAgdm9p
ZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgdW5zaWdu
ZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50
Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2Vi
Q29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9h
ZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0NvbnRl
eHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggZTI2MzA0MmY3ZmE1YzkyZTlhNGQ0ZmFlZTVhOGUwN2NmNzZhNWVjNC4u
ZTUzYzE2OTc3Yjc5MjQ4M2ZhNzkzYjU3ZTljMGZkOWZmMjJiYmI1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDEtMjcgIFJvYiBCdWlzICA8
cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFs
ZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGZyYW1lIHJl
bW92YWwgdHJpZ2dlcnMgcmV2YWxpZGF0aW9uIGNhbmNlbGxhdGlvbi4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92
YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jl
c291cmNlcy9zdGFsZS1mcmFtZS5weTogQWRkZWQuCisgICAgICAgIChpZF90b2tlbik6CisgICAg
ICAgIChtYWluKToKKwogMjAyMC0wMS0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhUmVjb3JkZXIucmVxdWVzdERhdGEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzRlYjYwNTM2YzY1MzQxOGQ5M2IzMTdlMmUzZmM0MGUxMGU4ZDhiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFs
ZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorICAKKworUEFTUyBGcmFtZSByZW1vdmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRh
dGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxl
LXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWYzNGVm
ODFmZDA1NGQxODYyOTk1YThjYmMzN2FhNTEwZjI3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxl
LXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgdGhhdCBmcmFtZSBy
ZW1vdmFsIGNhbmNlbHMgaXRzIHJldmFsaWRhdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24v
dXRpbHMuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CisgIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKKyAgY29uc3QgdXJsID0gYHJl
c291cmNlcy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgorCisgIC8vIGZp
cnN0IGZyYW1lIGxvYWQKKyAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgIGZyYW1lLnNyYyA9IHVybDsKKyAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAg
IC8vIHNlY29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KKyAgICBsZXQgZnJh
bWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgZnJhbWUyLnNyYyA9
IHVybDsKKyAgICBmcmFtZTIub25sb2FkID0gKCkgPT4geworICAgICAgLy8gcmVtb3ZlIGZyYW1l
LCBjYW5jZWxpbmcgcmV2YWxpZGF0aW9uCisgICAgICBmcmFtZTIucmVtb3ZlKCk7CisgICAgICAv
LyB0aGlyZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyBuZXcgcmV2YWxpZGF0aW9uCisgICAgICBsZXQg
ZnJhbWUzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBmcmFtZTMu
c3JjID0gdXJsOworICAgICAgZnJhbWUzLm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAgZmV0Y2go
InJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj0iICsgcmVxdWVzdF90b2tlbiku
dGhlbih0LnN0ZXBfZnVuYygocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJDb3VudCIpLCAnMicpOworICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICB9KSk7CisgICAgICB9CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGZyYW1lMyk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUyKTsK
KyAgfQorICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30sICdGcmFtZSByZW1v
dmFsIHNob3VsZCBjYW5jZWwgaXRzIHJldmFsaWRhdGlvbnMnKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFi
ODEwZjFjZmUzZDZkODNjN2FlYmMxNTRlYjVhZjkzNTg1ZmM1MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKQEAgLTAsMCArMSwzOCBA
QAoraW1wb3J0IHJhbmRvbSwgc3RyaW5nLCBkYXRldGltZSwgdGltZQorCitkZWYgaWRfdG9rZW4o
KToKKyAgIGxldHRlcnMgPSBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlCisgICByZXR1cm4gJycuam9p
bihyYW5kb20uY2hvaWNlKGxldHRlcnMpIGZvciBpIGluIHJhbmdlKDIwKSkKKworZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGlzX3JldmFsaWRhdGlvbiA9IHJlcXVlc3QuaGVhZGVy
cy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmly
c3QoInRva2VuIiwgTm9uZSkKKyAgICBpc19xdWVyeSA9IHJlcXVlc3QuR0VULmZpcnN0KCJxdWVy
eSIsIE5vbmUpICE9IE5vbmUKKyAgICB3aXRoIHJlcXVlc3Quc2VydmVyLnN0YXNoLmxvY2s6Cisg
ICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICBjb3Vu
dCA9IDAKKyAgICAgIGlmIHZhbHVlICE9IE5vbmU6CisgICAgICAgIGNvdW50ID0gaW50KHZhbHVl
KQorICAgICAgaWYgaXNfcXVlcnk6CisgICAgICAgIGlmIGNvdW50IDwgMjoKKyAgICAgICAgICBy
ZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIGNvdW50KQorICAgICAgZWxzZToKKyAgICAg
ICAgaWYgaXNfcmV2YWxpZGF0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgIGNvdW50ID0gY291
bnQgKyAxCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisK
KyAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICB0aW1lLnNsZWVwKDUp
OworCisgICAgaWYgaXNfcXVlcnk6CisgICAgICBoZWFkZXJzID0gWygiQ291bnQiLCBjb3VudCks
ICgiVGVzdCIsIHN0cihyZXF1ZXN0LnJhd19oZWFkZXJzKSldCisgICAgICBjb250ZW50ID0gIiIK
KyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKKyAgICBlbHNlOgorICAgICAgdW5p
cXVlX2lkID0gaWRfdG9rZW4oKQorICAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L2h0bWwiKSwKKyAgICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgInByaXZhdGUs
IG1heC1hZ2U9MCwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT02MCIpLAorICAgICAgICAgICAgICAg
ICAoIkVUYWciLCAnInN3ciInKSwKKyAgICAgICAgICAgICAgICAgKCJVbmlxdWUtSWQiLCB1bmlx
dWVfaWQpXQorICAgICAgY29udGVudCA9ICI8Ym9keT57fTwvYm9keT4iLmZvcm1hdCh1bmlxdWVf
aWQpCisgICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390061</attachid>
            <date>2020-02-07 00:41:10 -0800</date>
            <delta_ts>2020-02-24 06:02:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200207094108.patch</filename>
            <type>text/plain</type>
            <size>30306</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNjNGM2NzZjZmJmNTYz
ODk0YmViOTI1MWVkNjlmN2FhMTlhY2M1OC4uZGFjYTQyNWIwODUwYzU5MTNhOGEyNmM4MWRhNjIx
MzYxYjU1NWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAyLTA3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaG9vayB0byBMb2FkZXJT
dHJhdGVneSB0byBzaWduYWwgYnJvd3NpbmcgY29udGV4dCByZW1vdmFsCisgICAgICAgIGFuZCBj
YWxsIGl0IHdoZW4gdGhlIG1haW4gZnJhbWUgc3RvcHMgYWxsIGxvYWRlcnMuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1y
ZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6
CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
OjpjYW5Vc2VDYWNoZVZhbGlkYXRvciBjb25zdCk6CisKIDIwMjAtMDItMDYgIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTQ1
MzQpOiAxLTMlIHJlZ3Jlc3Npb24gb24gUExUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZmMTk3MTc5YmVhYzI4MzI4
MWU3YmE4MjVjYTRjYmRlMjM5YzM1NDIuLmIwOGRmM2ZkYmY1OTdhZWUzODA3MDE1NDdlOGUwNTEw
OGQ5MTE1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDItMDcgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBz
dGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1lc3NhZ2UgZm9yIGJyb3dzaW5nIGNv
bnRleHQgcmVtb3ZhbC4gV2hlbiB0aGUgbWVzc2FnZSBoYXBwZW5zLAorICAgICAgICBwYXNzIGl0
IGRvd24gdG8gdGhlIG5ldHdvcmsgY2FjaGUgdG8gcmVtb3ZlIGFueSBwZW5kaW5nCisgICAgICAg
IGFzeW5jIHJldmFsaWRhdGlvbnMgZm9yIHRoYXQgcGFnZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpBc3luY1JldmFsaWRhdGlvbjo6Y2Fu
Y2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25J
Zk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmJyb3dzaW5n
Q29udGV4dFJlbW92ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ6Omhh
c2ggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6Okds
b2JhbEZyYW1lSURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0
OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdU
Rjo6SGFzaFRyYWl0czxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD46OmNvbnN0
cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3
b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorCiAy
MDIwLTAyLTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIG1hY0NhdGFseXN0OiBVbm5lY2Vzc2FyeSBJLWJlYW0gb3ZlciBpbWFnZXMgaW4gZWRpdGFi
bGUgYXJlYXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggMTFjZjEzNmZiMWY5MjllY2Y3MDk3ZDdh
NWRmNDRkZTljMmEzNTk5Zi4uMGRkMzUwYWEzYTA4ZWE1MzliZjQ2NDk0ZGU3MTA1YzlmODVmNWJj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0wNyAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIEhhbmRsZSBwYWdlIGNsb3N1cmUg
Zm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTQ3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBlbXB0eSBzdHViIGZvciBu
ZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNj
aGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIwMjAtMDItMDQgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQWRkIENhaXJv
OjpDYWlybyB0YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDEw
NTVkNTcxNTI4NTQ0ZDYwMmI2YTViYTY4YzFiN2MxMmQyZDU4MWIuLjk2NTQ5MmFhMjBkNzc2ZjFl
NDMzNzJiZmY2YzdhMTAyODFiMGFhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMTg0Myw2ICsxODQzLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRl
cnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICAg
ICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogICAgIGlmICht
X2RvY3VtZW50TG9hZGVyKQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygp
OworICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSAmJiAhbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLmlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSkKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoZnJhbWUoKSk7
CiAKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJlc291cmNlTG9hZGlu
ZywgInN0b3BBbGxMb2FkZXJzOiBDbGVhcmluZyBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIg
KG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcj0lcCkiLCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRM
b2FkZXIuZ2V0KCkpOwogICAgIHNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIobnVsbHB0cik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDA2NDRmZWM1MDllNjBm
N2E0Y2Y1OWEzNTJmMzIzMzVjMmQxNjRkOTkuLjU3OWQ5MDM4ZjMxN2Q0NWQyN2M4NGEyN2UzZjIx
Y2ZmMGFlOGZkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01
OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1l
JiwgQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2Fk
ZXI+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoRnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNv
bnN0IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZl
Y3RvcjxjaGFyPiYgZGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRl
ZChQYWdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKEZy
YW1lJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRlciopID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciYsIGJv
b2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCmluZGV4IGM3NWIzZGMwYjJjNGZhNDc1OTAzZDMzMWE5MjJiMTgwNDgwZGRlZjQuLmMyNjU5
Nzk3YjA2MjVhMzRhZTJmMzQxMmUwZDc0NDViOWE2ODE0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtODE3LDYgKzgxNyw5IEBAIGJv
b2wgQ2FjaGVkUmVzb3VyY2U6OmNhblVzZUNhY2hlVmFsaWRhdG9yKCkgY29uc3QKIAogICAgIGlm
IChtX3Jlc3BvbnNlLmNhY2hlQ29udHJvbENvbnRhaW5zTm9TdG9yZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgLy8gTmV0d29yayBwcm9jZXNzIHdpbGwgaGFuZGxlIHJldmFsaWRhdGlv
biBmb3Igcy13LXIuCisgICAgaWYgKG1fcmVzcG9uc2UuY2FjaGVDb250cm9sU3RhbGVXaGlsZVJl
dmFsaWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBtX3Jlc3BvbnNl
Lmhhc0NhY2hlVmFsaWRhdG9yRmllbGRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggZmMwOGVmOTllNGI0Njc1MDdmOGI3YTRmN2I1NTliYzRiNjE5NjcxOS4uOWJiNTI5
ZGEwZmU1ZDY0YmNhNGU0MDI3ZjE1Y2IzMmE0YTQyMmVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQ5Nyw2ICs0OTcsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogICAg
IHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKIH0KIAor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YnJvd3NpbmdDb250ZXh0UmVtb3Zl
ZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEKQoreworICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKHdlYlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQs
IHdlYkZyYW1lSUQpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBtX25ldHdv
cmtQcm9jZXNzLT5wcmVmZXRjaEROUyhob3N0bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggZTM1YmQ0OGIxZDNlYTBhNzQ2ZGNjZjgxMWI5MjQ5ZTE5MjhmMDgyMC4uZjYxNWFjN2U1
Mjc2Y2ZiMGYxZDcxNzg0NmE5MmEyOGZhM2ZjMjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTk1LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVu
dGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0
ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgYnJvd3NpbmdDb250ZXh0UmVt
b3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNl
aXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAg
ICB2b2lkIHN0YXJ0RG93bmxvYWQoRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZTk1Y2M5MzM4YWI3MzU3OWE2MjQ2NWUxMjJlMmU3
MDQ2YmRhYjY4OC4uMmFlMWRlNWRjM2E3ZjE5ZDU0OTQwMTE5ZTIxYjE3MWJiOGQyOWQxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0
X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCisgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1l
SUQpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyhP
cHRpb25hbDx1aW50NjRfdD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDI0ZmM1ZTQ1OTQ1
YzZmNmE1ZGQzOTQyNDViMmIwYmVhOThlNTY3ZjEuLjYxM2VkZTRmMDkxMDdlOGVhMWZmOWYzYzdh
NjBmOTk2ZTM1MTU1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3
MzNiNTIwYTI3ZmVmNWE4MWExYzNlM2VmNmFiOWVjZmZhYWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4
MWZmNWUyNDQ5ZDdhNTBlMTA4NTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uY3BwCkBAIC01NCw2ICs1NCwx
MiBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZh
bGlkYXRpb25SZXF1ZXN0KGNvbnN0IEtleSYgawogICAgIHJldHVybiByZXZhbGlkYXRpb25SZXF1
ZXN0OwogfQogCit2b2lkIEFzeW5jUmV2YWxpZGF0aW9uOjpjYW5jZWwoKQoreworICAgIGlmICht
X2xvYWQpCisgICAgICAgIG1fbG9hZC0+Y2FuY2VsKCk7Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlk
YXRpb246OnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5kaW5nKCkKIHsKICAgICBpZiAobV9jb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQXN5bmNSZXZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQXN5bmNSZXZhbGlkYXRpb24uaAppbmRleCAwMTU1OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZi
MDI2NGFhODQxMjliLi4wZWM4OWY3OGMwZTM3YTI5MzRlYjFlMTU4NDQ3YjgyODcyYWIzODQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxp
ZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1Jl
dmFsaWRhdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50
cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3
IEBAIGNsYXNzIFNwZWN1bGF0aXZlTG9hZDsKIAogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAK
LWNsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIHsKK2NsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPEFzeW5jUmV2YWxpZGF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgewpAQCAtNTEsNiAr
NTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgfTsKICAgICBBc3luY1JldmFs
aWRhdGlvbihDYWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNhbmNlbCgpOwogCiAg
ICAgY29uc3QgU3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkgY29uc3QgeyByZXR1cm4gKm1fbG9hZDsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHAKaW5kZXggNDI4YmJiOGY2MmFlMDdkOWZjNjRiNWE2ZGY1NzNkMDBlYzQxMGQzOS4u
ODJjZDhlZjE4ZjhmY2ZlZDI3NmNkYzMzOGEwODNhMzc4Y2Q5OGNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzE5
LDE0ICszMTksMjkgQEAgc3RhdGljIGJvb2wgaW5saW5lIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0
QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxF
bnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCkKIHsKICAgICBtX3Bl
bmRpbmdBc3luY1JldmFsaWRhdGlvbnMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJu
IG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBX
VEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNSZXZhbGlkYXRpb246OlJlc3VsdCByZXN1
bHQpIHsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlv
bkJ5UGFnZS5lbnN1cmUoZnJhbWVJRCwgW10geworICAgICAgICAgICAgcmV0dXJuIFdlYWtIYXNo
U2V0PEFzeW5jUmV2YWxpZGF0aW9uPigpOworICAgICAgICB9KTsKKyAgICAgICAgYXV0byByZXZh
bGlkYXRpb24gPSBtYWtlVW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwg
cmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIFt0aGlzLCBrZXldKGF1dG8gcmVzdWx0KSB7CisgICAg
ICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLmNvbnRhaW5zKGtleSkp
OwogICAgICAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOwog
ICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2
YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRoIHJlc3VsdCAlZCIsIGtleS5pZGVudGlm
aWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQpKTsKICAgICAgICAg
fSk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKCpyZXZhbGlkYXRpb24p
OworICAgICAgICByZXR1cm4gcmV2YWxpZGF0aW9uOwogICAgIH0pOwogfQogI2VuZGlmCiAKK3Zv
aWQgQ2FjaGU6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRCkKK3sKKyNpZiBFTkFCTEUoTkVUV09SS19DQUNI
RV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQorICAgIGF1dG8gbG9hZGVycyA9IG1fcGVuZGluZ0Fz
eW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2UoeyB3ZWJQYWdlUHJveHlJRCwgd2ViUGFnZUlELCB3
ZWJGcmFtZUlEIH0pOworICAgIGZvciAoYXV0byYgbG9hZGVyIDogbG9hZGVycykKKyAgICAgICAg
bG9hZGVyLmNhbmNlbCgpOworI2VuZGlmCit9CisKIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJRCYg
ZnJhbWVJRCwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApp
bmRleCBjY2ZjOThhMzYzMGFmZTJlNjRiYjU5Y2M0NjlhMWY3MDZhZjYwMWFlLi40ZGFhMjA0ZDRm
MGVhNjQwMWEyYzIwMTNkOGRlNjNkYmNhYjZjMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDQsNiArNDUsNTggQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2hhcmVk
QnVmZmVyOwogfQogCituYW1lc3BhY2UgV2ViS2l0IHsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUg
eworCitzdHJ1Y3QgR2xvYmFsRnJhbWVJRCB7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRDsKKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CisKKyAgICB1bnNpZ25lZCBoYXNo
KCkgY29uc3Q7Cit9OworCitpbmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNv
bnN0Cit7CisgICAgdW5zaWduZWQgaGFzaGVzWzJdOworICAgIGhhc2hlc1swXSA9IFdURjo6aW50
SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7CisgICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNo
KGZyYW1lSUQudG9VSW50NjQoKSk7CisKKyAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVt
b3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCit7CisgICAg
Ly8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBn
bG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKKyAgICAvLyBhc3Nv
Y2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5LgorICAgIHJldHVybiBhLndlYlBhZ2VJ
RCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsKK30KKworfTsKK30g
Ly8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQorCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IEds
b2JhbEZyYW1lSURIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9
CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2Jh
bEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBi
KSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJh
aXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJh
aXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7CisgICAgc3RhdGljIFdl
YktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7
IH07IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyBzbG90LndlYlBhZ2VJRCA9IG1ha2VP
YmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmlj
X2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVk
VmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsg
cmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1
aW50NjRfdD46Om1heCgpOyB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRD4geworICAgIHR5cGVkZWYgR2xvYmFs
RnJhbWVJREhhc2ggSGFzaDsKK307CisKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IE5ldHdvcmtQcm9jZXNzOwpAQCAtOTAsMzAgKzE0Myw2IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNp
b24gewogICAgIE5vRHVlVG9FeHBpcmVkUmVkaXJlY3QKIH07CiAKLXN0cnVjdCBHbG9iYWxGcmFt
ZUlEIHsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEOwotICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRDsKLSAgICAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Ci19OwotCi1p
bmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Ci17Ci0gICAgdW5zaWdu
ZWQgaGFzaGVzWzJdOwotICAgIGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9V
SW50NjQoKSk7Ci0gICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQo
KSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9m
KGhhc2hlcykpOwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1l
SUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBjaGVj
ayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5k
IGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNh
bWUgV2ViUGFnZVByb3h5LgotICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAm
JiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsKLX0KLQogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6
IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNv
dXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUg
bm8gcmVhZCB0aW1lb3V0cy4KICAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKQEAgLTE3NSw2ICsy
MDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmV0d29ya0NhY2hlOjpLZXkm
LCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRp
ZgogCisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwor
CiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3Jr
UHJvY2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIGNvbnN0IFN0cmluZyYgc3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZURpcmVjdG9yeTsgfQpAQCAtMjAzLDYg
KzIzNCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElM
RV9SRVZBTElEQVRFKQogICAgIEhhc2hNYXA8S2V5LCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZh
bGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnM7CisgICAgSGFzaE1hcDxHbG9i
YWxGcmFtZUlELCBXZWFrSGFzaFNldDxBc3luY1JldmFsaWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5j
UmV2YWxpZGF0aW9uQnlQYWdlOwogI2VuZGlmCiAKICAgICB1bnNpZ25lZCBtX3RyYXZlcnNlQ291
bnQgeyAwIH07CkBAIC0yMTIsMjUgKzI0NCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewot
Ci1zdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBrZXkpIHsgcmV0dXJuIGtl
eS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2Jh
bEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKLX07Ci0KLXRlbXBsYXRlPD4gc3Ry
dWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQ+IHsKLSAg
ICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQotCi0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBzbG90KSB7IHNsb3Qud2ViUGFn
ZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOyB9Ci0KLSAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQudG9VSW50NjQoKSA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPiB7Ci0gICAgdHlw
ZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuY3BwCmluZGV4IDhjMTdlMmQzODVjNThjNWUxNjM5ZjVjYzBmZGQ5NjUyNjhk
YjIzNGYuLjFmZWNkYzg1YTUxNGNhMTgwNmMzOWUzMGFmOTU0OThiM2VkZTZhMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTY3LDYgKzY3LDE1IEBAIFNwZWN1bGF0
aXZlTG9hZDo6flNwZWN1bGF0aXZlTG9hZCgpCiAgICAgQVNTRVJUKCFtX25ldHdvcmtMb2FkKTsK
IH0KIAordm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNlbCgpCit7CisgICAgaWYgKG1fbmV0d29y
a0xvYWQpIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CisgICAgICAgIG1fbmV0
d29ya0xvYWQgPSBudWxscHRyOworICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIp
OworICAgIH0KK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OndpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJl
Y3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBM
T0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLCAiU3BlY3VsYXRpdmUgcmVkaXJl
Y3QgJXMgLT4gJXMiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlZGly
ZWN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVM
b2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5oCmluZGV4IDRmMGJjZjg2M2M3MzA4M2YzMjZlMjc0ZTc0MzMyMDJlMzhk
YjBhNzkuLmNlY2Q1ZmZmYjRjYzg2NzdkODVhNzhlNGIxYjZjODMzYjc1NDkyNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZ2luYWxSZXF1ZXN0OyB9CiAKKyAgICB2b2lkIGNhbmNlbCgpOworCiBw
cml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZvaWQgZGlkU2VuZERhdGEo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ3Yjg3NjUzMzQyOGJj
ZDEwYzA1MDU5ZjE4M2M3NzU1ZmRkZjY0ZC4uOGQ4YWUzMWM1ZDMxNTM0OWFmYTg3YTc2ODdiZGE1
MDQyYWUyMDk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNjI5LDYgKzYyOSwxMyBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZChQYWdlJiBwYWdlKQogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxv
YWRDb21wbGV0ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBhZ2UpLmlkZW50aWZpZXIoKSksIDAp
OwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKEZy
YW1lJiBmcmFtZSkKK3sKKyAgICBBU1NFUlQoZnJhbWUucGFnZSgpKTsKKyAgICBhdXRvJiBwYWdl
ID0gV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCpmcmFtZS5wYWdlKCkpOworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QnJvd3NpbmdD
b250ZXh0UmVtb3ZlZChwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcGFnZS5pZGVudGlm
aWVyKCksIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKS0+ZnJhbWVJRCgpKSwgMCk7Cit9
CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0
aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5YTc4YTVmZTI0ZGE3OGIz
NGViZWZhNzg1YTA3YjUwNDliYTQ3M2JhLi4yMmY2NDRmZDdmNDUwZDMyZWE0NWY5N2UyNzQ4OGVm
NWYzNGMxNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
bG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJP
cHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENy
ZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgZmluYWw7CiAgICAgdm9pZCBwYWdl
TG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0Nv
bnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGlu
ZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCmluZGV4IGJkMGNhMzZmOGFkYjZjNjZiZmEwMzdiMDUxNTliYTQ1Y2I1MGM1
MjguLjRhOGUxZDdkZTYwYjEyYTAzMTY5YTcwZGUzOTU2YzVlYTMwNGY4ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExNSw2ICsxMTUsMTAgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKFBhZ2UmKQogewogfQogCit2b2lkIFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChGcmFtZSYpCit7
Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVh
bUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCYgY2xp
ZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmNyZWF0ZShmcmFt
ZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmgKaW5kZXggOGVjOGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAw
M2ExZDg4NGYwNTRjMzlhNTA4YTgzZmRiODMzNTQ5NDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRSZXNvdXJjZShX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiYmKT4m
JikgZmluYWw7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6OkZy
YW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikgZmluYWw7
CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7CisgICAg
dm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAg
ICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWI2NGFiMWRmZGU5YTZkZDlkMmE5Nzhl
ODBkYjA1NTU1ODA2MzI2Yi4uNzk5ZjAyYjlmMjFkNzU2MjNiYWMzYmI2ODcwNmI0NWQxZGQ0ODYy
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAt
MDItMDcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBIYW5kbGUgcGFn
ZSBjbG9zdXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIHZl
cmlmeSB0aGF0IGZyYW1lIHJlbW92YWwgdHJpZ2dlcnMgcmV2YWxpZGF0aW9uIGNhbmNlbGxhdGlv
bi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZh
bGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFs
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weTogQWRkZWQuCisgICAgICAg
IChpZF90b2tlbik6CisgICAgICAgIChtYWluKToKKwogMjAyMC0wMi0wNiAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNj
NGViNjA1MzZjNjUzNDE4ZDkzYjMxN2UyZTNmYzQwZTEwZThkOGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxl
LXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisgIAorCitQQVNTIEZyYW1lIHJlbW92YWwgc2hvdWxkIGNhbmNlbCBpdHMgcmV2YWxpZGF0
aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1ZjM0ZWY4
MWZkMDU0ZDE4NjI5OTVhOGNiYzM3YWE1MTBmMjdjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VGVzdCB0aGF0IGZyYW1lIHJl
bW92YWwgY2FuY2VscyBpdHMgcmV2YWxpZGF0aW9uczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91
dGlscy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgdmFyIHJlcXVlc3RfdG9rZW4gPSB0b2tlbigpOworICBjb25zdCB1cmwgPSBgcmVz
b3VyY2VzL3N0YWxlLWZyYW1lLnB5P3Rva2VuPWAgKyByZXF1ZXN0X3Rva2VuCisKKyAgLy8gZmly
c3QgZnJhbWUgbG9hZAorICBsZXQgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgZnJhbWUuc3JjID0gdXJsOworICBmcmFtZS5vbmxvYWQgPSAoKSA9PiB7CisgICAg
Ly8gc2Vjb25kIGZyYW1lIGxvYWQsIHRyaWdnZXJzIHJldmFsaWRhdGlvbgorICAgIGxldCBmcmFt
ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBmcmFtZTIuc3JjID0g
dXJsOworICAgIGZyYW1lMi5vbmxvYWQgPSAoKSA9PiB7CisgICAgICAvLyByZW1vdmUgZnJhbWUs
IGNhbmNlbGluZyByZXZhbGlkYXRpb24KKyAgICAgIGZyYW1lMi5yZW1vdmUoKTsKKyAgICAgIC8v
IHRoaXJkIGZyYW1lIGxvYWQsIHRyaWdnZXJzIG5ldyByZXZhbGlkYXRpb24KKyAgICAgIGxldCBm
cmFtZTMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgIGZyYW1lMy5z
cmMgPSB1cmw7CisgICAgICBmcmFtZTMub25sb2FkID0gKCkgPT4geworICAgICAgICBmZXRjaCgi
cmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5P3F1ZXJ5JnRva2VuPSIgKyByZXF1ZXN0X3Rva2VuKS50
aGVuKHQuc3RlcF9mdW5jKChyZXNwb25zZSkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVzcG9uc2UuaGVhZGVycy5nZXQoIkNvdW50IiksICcyJyk7CisgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pKTsKKyAgICAgIH0KKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZnJhbWUzKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZTIpOwor
ICB9CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworfSwgJ0ZyYW1lIHJlbW92
YWwgc2hvdWxkIGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucycpOworPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWI4
MTBmMWNmZTNkNmQ4M2M3YWViYzE1NGViNWFmOTM1ODVmYzUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5weQpAQCAtMCwwICsxLDM4IEBA
CitpbXBvcnQgcmFuZG9tLCBzdHJpbmcsIGRhdGV0aW1lLCB0aW1lCisKK2RlZiBpZF90b2tlbigp
OgorICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNhc2UKKyAgIHJldHVybiAnJy5qb2lu
KHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFuZ2UoMjApKQorCitkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaXNfcmV2YWxpZGF0aW9uID0gcmVxdWVzdC5oZWFkZXJz
LmdldCgiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCisgICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJz
dCgidG9rZW4iLCBOb25lKQorICAgIGlzX3F1ZXJ5ID0gcmVxdWVzdC5HRVQuZmlyc3QoInF1ZXJ5
IiwgTm9uZSkgIT0gTm9uZQorICAgIHdpdGggcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gubG9jazoKKyAg
ICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikKKyAgICAgIGNvdW50
ID0gMAorICAgICAgaWYgdmFsdWUgIT0gTm9uZToKKyAgICAgICAgY291bnQgPSBpbnQodmFsdWUp
CisgICAgICBpZiBpc19xdWVyeToKKyAgICAgICAgaWYgY291bnQgPCAyOgorICAgICAgICAgIHJl
cXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisgICAgICBlbHNlOgorICAgICAg
ICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgY291bnQgPSBjb3Vu
dCArIDEKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBjb3VudCkKKwor
ICAgIGlmIGlzX3JldmFsaWRhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgIHRpbWUuc2xlZXAoNSk7
CisKKyAgICBpZiBpc19xdWVyeToKKyAgICAgIGhlYWRlcnMgPSBbKCJDb3VudCIsIGNvdW50KSwg
KCJUZXN0Iiwgc3RyKHJlcXVlc3QucmF3X2hlYWRlcnMpKV0KKyAgICAgIGNvbnRlbnQgPSAiIgor
ICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgY29udGVudAorICAgIGVsc2U6CisgICAgICB1bmlx
dWVfaWQgPSBpZF90b2tlbigpCisgICAgICBoZWFkZXJzID0gWygiQ29udGVudC1UeXBlIiwgInRl
eHQvaHRtbCIpLAorICAgICAgICAgICAgICAgICAoIkNhY2hlLUNvbnRyb2wiLCAicHJpdmF0ZSwg
bWF4LWFnZT0wLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPTYwIiksCisgICAgICAgICAgICAgICAg
ICgiRVRhZyIsICcic3dyIicpLAorICAgICAgICAgICAgICAgICAoIlVuaXF1ZS1JZCIsIHVuaXF1
ZV9pZCldCisgICAgICBjb250ZW50ID0gIjxib2R5Pnt9PC9ib2R5PiIuZm9ybWF0KHVuaXF1ZV9p
ZCkKKyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391530</attachid>
            <date>2020-02-24 06:02:44 -0800</date>
            <delta_ts>2020-02-24 07:50:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204147-20200224150242.patch</filename>
            <type>text/plain</type>
            <size>30381</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxNGFiODk5OWQ2ZDcy
YWM1NGYzYzgwNTMyMDNkMDU4ODM3ODc3Yy4uZDdkYjJmNzYyYTY1YjEzN2VjMzUyNzZhZDA4MjRl
ZWMxN2EzNTI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAyLTI0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgSGFuZGxlIHBhZ2UgY2xvc3VyZSBm
b3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSByZXZhbGlkYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxNDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBhIG5ldyBob29rIHRvIExvYWRlclN0
cmF0ZWd5IHRvIHNpZ25hbCBicm93c2luZyBjb250ZXh0IHJlbW92YWwKKyAgICAgICAgYW5kIGNh
bGwgaXQgd2hlbiB0aGUgbWFpbiBmcmFtZSBzdG9wcyBhbGwgbG9hZGVycy4KKworICAgICAgICBU
ZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJl
dmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKToK
KyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6
OmNhblVzZUNhY2hlVmFsaWRhdG9yIGNvbnN0KToKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBB
ZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9ydCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYTAyMzI0MWU2NzdlMzdkNWMwZTE1ZTE0NzllY2FmOGEyZGZhMjAxMC4uNTg0ZjZm
YzU5Y2MxNzBkZTE4M2I2ZjQyOGFjODVkODhkYWU4MDcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MCBAQAorMjAyMC0wMi0yNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IEhhbmRsZSBwYWdlIGNsb3N1cmUgZm9yIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgcmV2YWxpZGF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBZGQg
YSBtZXNzYWdlIGZvciBicm93c2luZyBjb250ZXh0IHJlbW92YWwuIFdoZW4gdGhlIG1lc3NhZ2Ug
aGFwcGVucywKKyAgICAgICAgcGFzcyBpdCBkb3duIHRvIHRoZSBuZXR3b3JrIGNhY2hlIHRvIHJl
bW92ZSBhbnkgcGVuZGluZworICAgICAgICBhc3luYyByZXZhbGlkYXRpb25zIGZvciB0aGF0IHBh
Z2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
YWNoZS9Bc3luY1JldmFsaWRhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6QXN5bmNSZXZhbGlkYXRpb246OmNhbmNlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hl
OjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ2FjaGU6OkNhY2hlOjpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhY2hlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdURjo6R2xvYmFsRnJhbWVJREhhc2g6
Omhhc2gpOgorICAgICAgICAoV1RGOjpHbG9iYWxGcmFtZUlESGFzaDo6ZXF1YWwpOgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6
ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RG
OjpIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3Vs
YXRpdmVMb2FkOjpjYW5jZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
Ojpicm93c2luZ0NvbnRleHRSZW1vdmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAyMC0wMi0yMyAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVz
IGxhdGUgRmVicnVhcnkgMjAyMCBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDVlZDc3
Zjg5YjI0OWRiOWRkMGJjZGE4YWVkNzU4NzU3NjRlODgzMmIuLmMzYjk5ZTE2MTJkNWVhMWI0M2Y0
ODQxODNmOTA0YmIxODI2MGMyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjAtMDItMjQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBI
YW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIHJldmFsaWRhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0
NworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgUHJvdmlk
ZSBlbXB0eSBzdHViIGZvciBuZXcgbWV0aG9kIG9uIExvYWRlclN0cmF0ZWd5LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAg
KFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIwMjAt
MDItMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4gYW5kIFBh
dmVsIEZlbGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIEVwaGVtZXJh
bCBzZXNzaW9uIGRhdGEgbGVha3MgYmV0d2VlbiBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IDhjZjljNWM0N2NlYTNhZDI3ZjI4MmI1ZDczY2ZkNWQ2ZTNl
NzgzNGEuLjMxYTRmZDhmZDk1ZTRjNDhiZjg2ZDdmYWI4ODgwNTY5N2E4NjE2YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTg0MSw2ICsxODQxLDggQEAgdm9pZCBG
cmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xl
YXJQcm92aXNpb25hbEl0ZW0KICAgICAgICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5z
dG9wTG9hZGluZygpOwogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKQogICAgICAgICBtX2RvY3Vt
ZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOworICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSAmJiAhbV9m
cmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSkK
KyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmJyb3dzaW5n
Q29udGV4dFJlbW92ZWQoZnJhbWUoKSk7CiAKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgInN0b3BBbGxMb2FkZXJzOiBDbGVhcmluZyBwcm92
aXNpb25hbCBkb2N1bWVudCBsb2FkZXIgKG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcj0lcCki
LCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwogICAgIHNldFByb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXIobnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVn
eS5oCmluZGV4IDA2NDRmZWM1MDllNjBmN2E0Y2Y1OWEzNTJmMzIzMzVjMmQxNjRkOTkuLjU3OWQ5
MDM4ZjMxN2Q0NWQyN2M4NGEyN2UzZjIxY2ZmMGFlOGZkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwgQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ks
IGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9y
JiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChQYWdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBi
cm93c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZShSZXNvdXJjZUxvYWRlciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhSZXNvdXJjZUxvYWRlciYsIGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDhiZTYyOWZhNTliZGMzNzZiOTUwOGQ1
MDlhODEzMDgwMjc2ZGIyMTIuLjVkZTcwODNhZGI1MzRiNWU4ZDJiYzQ0M2Y3NTUwYTJiOGMzOGZh
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNw
cApAQCAtODMzLDYgKzgzMyw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2U6OmNhblVzZUNhY2hlVmFs
aWRhdG9yKCkgY29uc3QKIAogICAgIGlmIChtX3Jlc3BvbnNlLmNhY2hlQ29udHJvbENvbnRhaW5z
Tm9TdG9yZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gTmV0d29yayBwcm9jZXNz
IHdpbGwgaGFuZGxlIHJldmFsaWRhdGlvbiBmb3Igcy13LXIuCisgICAgaWYgKG1fcmVzcG9uc2Uu
Y2FjaGVDb250cm9sU3RhbGVXaGlsZVJldmFsaWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIHJldHVybiBtX3Jlc3BvbnNlLmhhc0NhY2hlVmFsaWRhdG9yRmllbGRzKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzJlMWQyNmRjZDNmOWE4Y2ZiOTVmMDIz
YTAyY2E2YTg5MGQwNjFjZC4uNmY5N2UzMmE3ZjVmMTBkY2MwNjk0MGYxNzkyOGVjZGEwMzVkYTBi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUwMyw2ICs1MDMsMTQgQEAgdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQoUGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlEKQogICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0Zv
clBhZ2Uod2ViUGFnZUlEKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQ
cm94eUlELCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciB3ZWJGcmFt
ZUlEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lv
bi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5icm93c2luZ0NvbnRleHRSZW1vdmVkKHdl
YlBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHdlYkZyYW1lSUQpOworICAgIH0KK30KKwogdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNzLT5wcmVmZXRjaEROUyhob3N0bmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggN2VkYzVjNjA1OTZjNWI0ZTZiZmIyMWFhOTNm
NjU1ZTFkNDk1NzViZS4uZjU2YzdkY2ZjYmEwYjVlOTEyMmU4NjE5ZGE0MDAyZjRiNTA5MTkzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjAwLDYgKzIwMCw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwog
ICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAg
IHZvaWQgYnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lk
IGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25z
dCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODI1NTQ2
YzIwN2IzN2E1NjM1YmQyOTgzZDcwZDUxZDdkOGRkMDJhNi4uMjRmNWU1Yzg0YjdiYTM0YjY4NDE0
YmNjMDMzNWNkM2Y4ZGI0Y2I5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVt
b3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBQ
YWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCisgICAg
QnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2Vi
UGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3Ru
YW1lKQogICAgIFByZWNvbm5lY3RUbyhPcHRpb25hbDx1aW50NjRfdD4gcHJlY29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFt
ZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCmluZGV4IDM0ZGNiMmJmMjRlYTk3MzMzZTFhM2QwZDc2OGIwYjNiNWY3YWNkOTIuLjc5
OTBhZWNmNzc3MDRiYjQ0Y2I4ZDhkNjdlNzY0YzViYmMyNmU3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NCw3ICs0NCw2IEBA
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
U2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0FzeW5jUmV2
YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNS
ZXZhbGlkYXRpb24uY3BwCmluZGV4IGU3MzNiNTIwYTI3ZmVmNWE4MWExYzNlM2VmNmFiOWVjZmZh
YWI1NzIuLjhkNjYwZDJlNWIzNzBlMmI4MWZmNWUyNDQ5ZDdhNTBlMTA4NTFiOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlk
YXRpb24uY3BwCkBAIC01NCw2ICs1NCwxMiBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0KGNvbnN0IEtleSYgawogICAg
IHJldHVybiByZXZhbGlkYXRpb25SZXF1ZXN0OwogfQogCit2b2lkIEFzeW5jUmV2YWxpZGF0aW9u
OjpjYW5jZWwoKQoreworICAgIGlmIChtX2xvYWQpCisgICAgICAgIG1fbG9hZC0+Y2FuY2VsKCk7
Cit9CisKIHZvaWQgQXN5bmNSZXZhbGlkYXRpb246OnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5kaW5n
KCkKIHsKICAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQXN5bmNSZXZhbGlkYXRpb24uaAppbmRleCAwMTU1
OWI3ZDJkNjkyMzQ5ZGNjMDVlZDJiOTZiMDI2NGFhODQxMjliLi4wZWM4OWY3OGMwZTM3YTI5MzRl
YjFlMTU4NDQ3YjgyODcyYWIzODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0FzeW5jUmV2YWxpZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9Bc3luY1JldmFsaWRhdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlTG9hZDsKIAogbmFt
ZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKLWNsYXNzIEFzeW5jUmV2YWxpZGF0aW9uIHsKK2NsYXNz
IEFzeW5jUmV2YWxpZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEFzeW5jUmV2YWxpZGF0
aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBSZXN1bHQgewpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1Y2Nlc3Ms
CiAgICAgfTsKICAgICBBc3luY1JldmFsaWRhdGlvbihDYWNoZSYsIGNvbnN0IEdsb2JhbEZyYW1l
SUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NhY2hlOjpFbnRyeT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXN1bHQpPiYmKTsK
KyAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgY29uc3QgU3BlY3VsYXRpdmVMb2FkJiBsb2FkKCkg
Y29uc3QgeyByZXR1cm4gKm1fbG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggZTkzNDE2ZDIzNmU3NDRjOGZk
ZWE2NmZjZDkzODc0NmU3MWUwZmI2MC4uZTJjODZhYWZkNmY0YTM1NzNmMTZiZjkyNDdmYzVlYzEy
NDdhYmU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcApAQCAtMzQwLDE0ICszNDAsMjkgQEAgc3RhdGljIGJvb2wgaW5saW5l
IGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVIKIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5
JiBrZXksIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4mJiBlbnRyeSwgY29uc3QgR2xvYmFsRnJhbWVJ
RCYgZnJhbWVJRCkKIHsKICAgICBtX3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbnMuZW5zdXJlKGtl
eSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QXN5bmNSZXZhbGlkYXRpb24+KCp0
aGlzLCBmcmFtZUlELCByZXF1ZXN0LCBXVEZNb3ZlKGVudHJ5KSwgW3RoaXMsIGtleV0oQXN5bmNS
ZXZhbGlkYXRpb246OlJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3BlbmRpbmdBc3luY1JldmFsaWRhdGlvbkJ5UGFnZS5lbnN1cmUoZnJhbWVJRCwgW10geworICAg
ICAgICAgICAgcmV0dXJuIFdlYWtIYXNoU2V0PEFzeW5jUmV2YWxpZGF0aW9uPigpOworICAgICAg
ICB9KTsKKyAgICAgICAgYXV0byByZXZhbGlkYXRpb24gPSBtYWtlVW5pcXVlPEFzeW5jUmV2YWxp
ZGF0aW9uPigqdGhpcywgZnJhbWVJRCwgcmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIFt0aGlzLCBr
ZXldKGF1dG8gcmVzdWx0KSB7CisgICAgICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNSZXZh
bGlkYXRpb25zLmNvbnRhaW5zKGtleSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nQXN5bmNSZXZh
bGlkYXRpb25zLnJlbW92ZShrZXkpOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihO
ZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVzJyB3aXRo
IHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8
aW50PihyZXN1bHQpKTsKICAgICAgICAgfSk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+
dmFsdWUuYWRkKCpyZXZhbGlkYXRpb24pOworICAgICAgICByZXR1cm4gcmV2YWxpZGF0aW9uOwog
ICAgIH0pOwogfQogI2VuZGlmCiAKK3ZvaWQgQ2FjaGU6OmJyb3dzaW5nQ29udGV4dFJlbW92ZWQo
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRCkKK3sK
KyNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQorICAgIGF1
dG8gbG9hZGVycyA9IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlLnRha2UoeyB3ZWJQ
YWdlUHJveHlJRCwgd2ViUGFnZUlELCB3ZWJGcmFtZUlEIH0pOworICAgIGZvciAoYXV0byYgbG9h
ZGVyIDogbG9hZGVycykKKyAgICAgICAgbG9hZGVyLmNhbmNlbCgpOworI2VuZGlmCit9CisKIHZv
aWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxl
ciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXNJbkhUVFBGYW1pbHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCAwNGQ3ZDZhZjczYmMzYjcwMWY3NmYwYTRjMzY0
OTVkZjAxOGJjYmYzLi5hMDc0Yzk5MzA2MzUxNjI3ZTgyODBkNTQ2MTRmNGQ2MTQ4MTE0ODQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsNiArNDUsNTggQEAgY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogfQogCituYW1lc3BhY2UgV2ViS2l0IHsK
K25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworCitzdHJ1Y3QgR2xvYmFsRnJhbWVJRCB7CisgICAg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRDsKKyAgICBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Cit9OworCitpbmxpbmUgdW5zaWduZWQg
R2xvYmFsRnJhbWVJRDo6aGFzaCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgaGFzaGVzWzJdOwor
ICAgIGhhc2hlc1swXSA9IFdURjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7CisgICAg
aGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7CisKKyAgICByZXR1
cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOworfQor
CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEds
b2JhbEZyYW1lSUQmIGIpCit7CisgICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJ
RCBzaW5jZSB3ZWJQYWdlSURzIGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFn
ZSBpcyBhbHdheXMKKyAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5
LgorICAgIHJldHVybiBhLndlYlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09
IGIuZnJhbWVJRDsKK30KKworfTsKK30gLy8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQorCituYW1l
c3BhY2UgV1RGIHsKKworc3RydWN0IEdsb2JhbEZyYW1lSURIYXNoIHsKKyAgICBzdGF0aWMgdW5z
aWduZWQgaGFzaChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYga2V5
KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IFdlYktpdDo6TmV0d29y
a0NhY2hlOjpHbG9iYWxGcmFtZUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEPiB7CisgICAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlE
IGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkg
eyBzbG90LndlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorCisg
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Okdsb2JhbEZyYW1lSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qud2ViUGFnZUlELnRvVUludDY0KCkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Cit9OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJ
RD4geworICAgIHR5cGVkZWYgR2xvYmFsRnJhbWVJREhhc2ggSGFzaDsKK307CisKK30KKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpAQCAtOTAsMzAgKzE0Myw2
IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9FeHBpcmVkUmVkaXJlY3QK
IH07CiAKLXN0cnVjdCBHbG9iYWxGcmFtZUlEIHsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHdlYlBhZ2VQcm94eUlEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsK
LSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKLSAgICAKLSAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3Q7Ci19OwotCi1pbmxpbmUgdW5zaWduZWQgR2xvYmFsRnJhbWVJRDo6aGFz
aCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgaGFzaGVzWzJdOwotICAgIGhhc2hlc1swXSA9IFdU
Rjo6aW50SGFzaCh3ZWJQYWdlSUQudG9VSW50NjQoKSk7Ci0gICAgaGFzaGVzWzFdID0gV1RGOjpp
bnRIYXNoKGZyYW1lSUQudG9VSW50NjQoKSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpo
YXNoTWVtb3J5KGhhc2hlcywgc2l6ZW9mKGhhc2hlcykpOwotfQotCi1pbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEdsb2JhbEZyYW1lSUQmIGEsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGIpCi17
Ci0gICAgLy8gTm8gbmVlZCB0byBjaGVjayB3ZWJQYWdlUHJveHlJRCBzaW5jZSB3ZWJQYWdlSURz
IGFyZSBnbG9iYWxseSB1bmlxdWUgYW5kIGEgZ2l2ZW4gV2ViUGFnZSBpcyBhbHdheXMKLSAgICAv
LyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgV2ViUGFnZVByb3h5LgotICAgIHJldHVybiBhLndl
YlBhZ2VJRCA9PSBiLndlYlBhZ2VJRCAmJiAgYS5mcmFtZUlEID09IGIuZnJhbWVJRDsKLX0KLQog
ZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9k
ZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBu
b3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KICAgICBUZXN0aW5nTW9k
ZSA9IDEgPDwgMCwKQEAgLTE3Niw2ICsyMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEFz
eW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgTmV0d29ya0NhY2hlOjpLZXkmLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+JiYsIGNvbnN0
IEdsb2JhbEZyYW1lSUQmKTsKICNlbmRpZgogCisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1v
dmVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOworCiAgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQogICAgIGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAg
IGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFn
ZURpcmVjdG9yeTsgfQpAQCAtMjA0LDYgKzIzNSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKQogICAgIEhhc2hNYXA8S2V5LCBz
dGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZXZhbGlkYXRpb24+PiBtX3BlbmRpbmdBc3luY1JldmFsaWRh
dGlvbnM7CisgICAgSGFzaE1hcDxHbG9iYWxGcmFtZUlELCBXZWFrSGFzaFNldDxBc3luY1JldmFs
aWRhdGlvbj4+IG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9uQnlQYWdlOwogI2VuZGlmCiAKICAg
ICB1bnNpZ25lZCBtX3RyYXZlcnNlQ291bnQgeyAwIH07CkBAIC0yMTMsMjUgKzI0NSwzIEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1zdHJ1Y3QgR2xvYmFsRnJhbWVJREhhc2ggewotICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxG
cmFtZUlEJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgYSwgY29uc3QgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQot
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Okdsb2JhbEZyYW1lSUQ+IHsKLSAgICBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Okds
b2JhbEZyYW1lSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCi0gICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpHbG9iYWxGcmFt
ZUlEJiBzbG90KSB7IHNsb3Qud2ViUGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXJUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4
KCkpOyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCYgc2xvdCkgeyByZXR1cm4gc2xvdC53ZWJQYWdlSUQu
dG9VSW50NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLX07
Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6TmV0d29ya0NhY2hlOjpH
bG9iYWxGcmFtZUlEPiB7Ci0gICAgdHlwZWRlZiBHbG9iYWxGcmFtZUlESGFzaCBIYXNoOwotfTsK
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDhjMTdlMmQzODVj
NThjNWUxNjM5ZjVjYzBmZGQ5NjUyNjhkYjIzNGYuLjcwOGQ0OGMyNzU3N2Y4MzFjNjQ4NTEyMmFk
NzNkZjNmNDA0YTNkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAg
LTY3LDYgKzY3LDE1IEBAIFNwZWN1bGF0aXZlTG9hZDo6flNwZWN1bGF0aXZlTG9hZCgpCiAgICAg
QVNTRVJUKCFtX25ldHdvcmtMb2FkKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUxvYWQ6OmNhbmNl
bCgpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm47CisgICAgbV9u
ZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CisgICAgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7CisgICAg
bV9jb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWQ6
OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5n
LCAiU3BlY3VsYXRpdmUgcmVkaXJlY3QgJXMgLT4gJXMiLCByZXF1ZXN0LnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIHJlZGlyZWN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oCmluZGV4IDRmMGJjZjg2M2M3MzA4
M2YzMjZlMjc0ZTc0MzMyMDJlMzhkYjBhNzkuLmNlY2Q1ZmZmYjRjYzg2NzdkODVhNzhlNGIxYjZj
ODMzYjc1NDkyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaApAQCAtNTEsNiAr
NTEsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYWxSZXF1ZXN0OyB9CiAKKyAg
ICB2b2lkIGNhbmNlbCgpOworCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50Lgog
ICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWdu
ZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
aW5kZXggNzM1N2Y1NGQ5NWNmMTIyNGJlNDZjZTNkYTMyMzdhOGNhYmJmMWVmMy4uNDRmMzUwOWI5
YzIzOWIxZjBjOTY0MmMyZjhlNGNjMTNiMzM3Y2NjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNjM2LDYg
KzYzNiwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZChQYWdl
JiBwYWdlKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UGFnZUxvYWRDb21wbGV0ZWQoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBh
Z2UpLmlkZW50aWZpZXIoKSksIDApOwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpicm93
c2luZ0NvbnRleHRSZW1vdmVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBBU1NFUlQoZnJhbWUucGFn
ZSgpKTsKKyAgICBhdXRvJiBwYWdlID0gV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCpmcmFtZS5wYWdl
KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6QnJvd3NpbmdDb250ZXh0UmVtb3ZlZChwYWdlLndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKSwgcGFnZS5pZGVudGlmaWVyKCksIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KS0+ZnJhbWVJRCgpKSwgMCk7Cit9CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVu
dGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApp
bmRleCA5YTc4YTVmZTI0ZGE3OGIzNGViZWZhNzg1YTA3YjUwNDliYTQ3M2JhLi4yMmY2NDRmZDdm
NDUwZDMyZWE0NWY5N2UyNzQ4OGVmNWYzNGMxNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTU0LDYgKzU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBs
b25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkg
ZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7
CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAg
IHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGJkMGNhMzZmOGFkYjZjNjZi
ZmEwMzdiMDUxNTliYTQ1Y2I1MGM1MjguLjRhOGUxZDdkZTYwYjEyYTAzMTY5YTcwZGUzOTU2YzVl
YTMwNGY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExNSw2ICsxMTUs
MTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKFBh
Z2UmKQogewogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6YnJvd3NpbmdDb250
ZXh0UmVtb3ZlZChGcmFtZSYpCit7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxX
ZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggOGVjOGE0OTRiY2EyYjBkNTcxMzU1YTNjM2U2
ZmRiNTI1YWQ2Yjg0ZC4uNzU2YTAwM2ExZDg4NGYwNTRjMzlhNTA4YTgzZmRiODMzNTQ5NDI3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlN1
YnJlc291cmNlTG9hZGVyPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwg
Y29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
VmVjdG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZChXZWJDb3Jl
OjpQYWdlJikgZmluYWw7CisgICAgdm9pZCBicm93c2luZ0NvbnRleHRSZW1vdmVkKFdlYkNvcmU6
OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
ciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlciYsIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDY1
ZGYxZTFiOWFmZTU5MWI4NjY0NmJkZjViZGNkNjA0MDZiN2M2Zi4uN2NiZDk4ZjM2OGMwYjFlM2E3
OGEzMmQyZjEzODUxNmNjN2ZiNTRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMjQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBIYW5kbGUgcGFnZSBjbG9zdXJlIGZvciBzdGFsZS13aGlsZS1yZXZhbGlkYXRl
IHJldmFsaWRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDE0NworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgQWRkIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZnJhbWUgcmVtb3ZhbCB0cmlnZ2VycyByZXZh
bGlkYXRpb24gY2FuY2VsbGF0aW9uLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZh
bGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1l
LnB5OiBBZGRlZC4KKyAgICAgICAgKGlkX3Rva2VuKToKKyAgICAgICAgKG1haW4pOgorCiAyMDIw
LTAyLTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggSFRN
TERhdGFMaXN0RWxlbWVudC5vcHRpb25zIHRvIGluY2x1ZGUgZXZlbiBvcHRpb25zIHRoYXQgYXJl
IG5vdCBzdWdnZXN0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92
YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNjNGViNjA1MzZjNjUzNDE4ZDkzYjMxN2UyZTNmYzQwZTEwZThkOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACisgIAorCitQQVNTIEZyYW1lIHJlbW92YWwgc2hvdWxkIGNh
bmNlbCBpdHMgcmV2YWxpZGF0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2Zy
YW1lLXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWU1ZjM0ZWY4MWZkMDU0ZDE4NjI5OTVhOGNiYzM3YWE1MTBmMjdjYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLmh0bWwKQEAgLTAsMCAr
MSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
VGVzdCB0aGF0IGZyYW1lIHJlbW92YWwgY2FuY2VscyBpdHMgcmV2YWxpZGF0aW9uczwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cith
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgdmFyIHJlcXVlc3RfdG9rZW4gPSB0b2tlbigpOwor
ICBjb25zdCB1cmwgPSBgcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5P3Rva2VuPWAgKyByZXF1ZXN0
X3Rva2VuCisKKyAgLy8gZmlyc3QgZnJhbWUgbG9hZAorICBsZXQgZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgZnJhbWUuc3JjID0gdXJsOworICBmcmFtZS5vbmxv
YWQgPSAoKSA9PiB7CisgICAgLy8gc2Vjb25kIGZyYW1lIGxvYWQsIHRyaWdnZXJzIHJldmFsaWRh
dGlvbgorICAgIGxldCBmcmFtZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICBmcmFtZTIuc3JjID0gdXJsOworICAgIGZyYW1lMi5vbmxvYWQgPSAoKSA9PiB7CisgICAg
ICAvLyByZW1vdmUgZnJhbWUsIGNhbmNlbGluZyByZXZhbGlkYXRpb24KKyAgICAgIGZyYW1lMi5y
ZW1vdmUoKTsKKyAgICAgIC8vIHRoaXJkIGZyYW1lIGxvYWQsIHRyaWdnZXJzIG5ldyByZXZhbGlk
YXRpb24KKyAgICAgIGxldCBmcmFtZTMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKKyAgICAgIGZyYW1lMy5zcmMgPSB1cmw7CisgICAgICBmcmFtZTMub25sb2FkID0gKCkgPT4g
eworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5P3F1ZXJ5JnRva2VuPSIg
KyByZXF1ZXN0X3Rva2VuKS50aGVuKHQuc3RlcF9mdW5jKChyZXNwb25zZSkgPT4geworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoIkNvdW50IiksICcyJyk7Cisg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pKTsKKyAgICAgIH0KKyAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUzKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChmcmFtZTIpOworICB9CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUp
OworfSwgJ0ZyYW1lIHJlbW92YWwgc2hvdWxkIGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucycpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2Vz
L3N0YWxlLWZyYW1lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MWI4MTBmMWNmZTNkNmQ4M2M3YWViYzE1NGViNWFmOTM1ODVmYzUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3Jlc291cmNlcy9zdGFsZS1mcmFtZS5w
eQpAQCAtMCwwICsxLDM4IEBACitpbXBvcnQgcmFuZG9tLCBzdHJpbmcsIGRhdGV0aW1lLCB0aW1l
CisKK2RlZiBpZF90b2tlbigpOgorICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNhc2UK
KyAgIHJldHVybiAnJy5qb2luKHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFuZ2Uo
MjApKQorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaXNfcmV2YWxpZGF0aW9u
ID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCisgICAgdG9rZW4g
PSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iLCBOb25lKQorICAgIGlzX3F1ZXJ5ID0gcmVxdWVz
dC5HRVQuZmlyc3QoInF1ZXJ5IiwgTm9uZSkgIT0gTm9uZQorICAgIHdpdGggcmVxdWVzdC5zZXJ2
ZXIuc3Rhc2gubG9jazoKKyAgICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0
b2tlbikKKyAgICAgIGNvdW50ID0gMAorICAgICAgaWYgdmFsdWUgIT0gTm9uZToKKyAgICAgICAg
Y291bnQgPSBpbnQodmFsdWUpCisgICAgICBpZiBpc19xdWVyeToKKyAgICAgICAgaWYgY291bnQg
PCAyOgorICAgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCisg
ICAgICBlbHNlOgorICAgICAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6CisgICAg
ICAgICAgY291bnQgPSBjb3VudCArIDEKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0
KHRva2VuLCBjb3VudCkKKworICAgIGlmIGlzX3JldmFsaWRhdGlvbiBpcyBub3QgTm9uZToKKyAg
ICAgIHRpbWUuc2xlZXAoNSk7CisKKyAgICBpZiBpc19xdWVyeToKKyAgICAgIGhlYWRlcnMgPSBb
KCJDb3VudCIsIGNvdW50KSwgKCJUZXN0Iiwgc3RyKHJlcXVlc3QucmF3X2hlYWRlcnMpKV0KKyAg
ICAgIGNvbnRlbnQgPSAiIgorICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgY29udGVudAorICAg
IGVsc2U6CisgICAgICB1bmlxdWVfaWQgPSBpZF90b2tlbigpCisgICAgICBoZWFkZXJzID0gWygi
Q29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpLAorICAgICAgICAgICAgICAgICAoIkNhY2hlLUNv
bnRyb2wiLCAicHJpdmF0ZSwgbWF4LWFnZT0wLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPTYwIiks
CisgICAgICAgICAgICAgICAgICgiRVRhZyIsICcic3dyIicpLAorICAgICAgICAgICAgICAgICAo
IlVuaXF1ZS1JZCIsIHVuaXF1ZV9pZCldCisgICAgICBjb250ZW50ID0gIjxib2R5Pnt9PC9ib2R5
PiIuZm9ybWF0KHVuaXF1ZV9pZCkKKyAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQK
</data>

          </attachment>
      

    </bug>

</bugzilla>