<?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>228560</bug_id>
          
          <creation_ts>2021-07-28 11:30:18 -0700</creation_ts>
          <short_desc>[Cocoa] Remove support for AVAssetImageGenerator</short_desc>
          <delta_ts>2021-08-06 08:09:31 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228714</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>
          <dependson>228620</dependson>
    
    <dependson>228677</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780134</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 11:30:18 -0700</bug_when>
    <thetext>[Cocoa] Remove support for AVAssetImageGenerator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780191</commentid>
    <comment_count>1</comment_count>
      <attachid>434458</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 13:39:31 -0700</bug_when>
    <thetext>Created attachment 434458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780193</commentid>
    <comment_count>2</comment_count>
      <attachid>434460</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 13:46:57 -0700</bug_when>
    <thetext>Created attachment 434460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780205</commentid>
    <comment_count>3</comment_count>
      <attachid>434467</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 14:17:09 -0700</bug_when>
    <thetext>Created attachment 434467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780224</commentid>
    <comment_count>4</comment_count>
      <attachid>434467</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-07-28 15:01:43 -0700</bug_when>
    <thetext>Comment on attachment 434467
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2387
&gt; +    if ([m_videoOutput respondsToSelector:@selector(requestNotificationOfMediaDataChangeAsSoonAsPossible)])
&gt; +        [m_videoOutput requestNotificationOfMediaDataChangeAsSoonAsPossible];

As discussed, it might be worth logging an error if it doesn&apos;t support this selector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780228</commentid>
    <comment_count>5</comment_count>
      <attachid>434471</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 15:11:31 -0700</bug_when>
    <thetext>Created attachment 434471
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780320</commentid>
    <comment_count>6</comment_count>
      <attachid>434498</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 23:18:37 -0700</bug_when>
    <thetext>Created attachment 434498
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780321</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-07-28 23:19:19 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780324</commentid>
    <comment_count>8</comment_count>
      <attachid>434499</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-28 23:37:59 -0700</bug_when>
    <thetext>Created attachment 434499
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780628</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-29 16:31:09 -0700</bug_when>
    <thetext>The mac-AS-debug-wk2 test failure will be fixed by bug #228620.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780685</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-29 20:04:51 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780686</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-29 20:13:27 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780699</commentid>
    <comment_count>12</comment_count>
      <attachid>434605</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-29 21:59:17 -0700</bug_when>
    <thetext>Created attachment 434605
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780895</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-30 11:45:08 -0700</bug_when>
    <thetext>After running tests on a mac-AS-debug-wk2 and catching some of the timeouts &amp; using the Web Inspector, I&apos;m confident that the test failures are unrelated to my patch. The failures, when caught, appear to be a result of `testRunner.notifyDone()` not causing the test contents to be dumped. In all the results I&apos;ve caught, the DOM includes `&quot;TEST COMPLETE&quot;`, but WKTR is still waiting for results to be dumped.

I have caught other flaky tests that are stuck in AVPlayerItem -seekToTime:toleranceBefore:toleranceAfter:completionHandler: being stuck without the completionHandler being called. Calling -cancelPendingSeeks through lldb causes the test to &quot;unstick&quot; and run to completion. Also unrelated to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780896</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-30 11:49:54 -0700</bug_when>
    <thetext>Committed r280488 (240120@main): &lt;https://commits.webkit.org/240120@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434605.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780897</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-30 11:50:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/81336280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780953</commentid>
    <comment_count>16</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-07-30 14:41:26 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/280488/webkit

broke 10 media/modern-media-controls/ tests causing them to time out

tracking in https://bugs.webkit.org/show_bug.cgi?id=228660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781061</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-07-31 00:50:30 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 228677</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781117</commentid>
    <comment_count>18</comment_count>
      <attachid>434709</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-31 18:22:23 -0700</bug_when>
    <thetext>Created attachment 434709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781120</commentid>
    <comment_count>19</comment_count>
      <attachid>434710</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-31 19:22:38 -0700</bug_when>
    <thetext>Created attachment 434710
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781121</commentid>
    <comment_count>20</comment_count>
      <attachid>434711</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-07-31 19:43:27 -0700</bug_when>
    <thetext>Created attachment 434711
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781156</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-01 13:37:19 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781239</commentid>
    <comment_count>22</comment_count>
      <attachid>434751</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-02 08:11:27 -0700</bug_when>
    <thetext>Created attachment 434751
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781252</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-02 08:39:28 -0700</bug_when>
    <thetext>Committed r280531 (240163@main): &lt;https://commits.webkit.org/240163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434751.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781367</commentid>
    <comment_count>24</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-08-02 13:08:56 -0700</bug_when>
    <thetext>(In reply to EWS from comment #23)
&gt; Committed r280531 (240163@main): &lt;https://commits.webkit.org/240163@main&gt;
It appears that we are seeing modern-media-controls layout test timeouts again:

https://build.webkit.org/results/Apple-BigSur-Release-AppleSilicon-WK2-Tests/r280531%20(2978)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781799</commentid>
    <comment_count>25</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-08-03 18:11:06 -0700</bug_when>
    <thetext>Reverted r280531 and r280589 for reason:

caused

Committed r280624 (240237@main): &lt;https://commits.webkit.org/240237@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782001</commentid>
    <comment_count>26</comment_count>
      <attachid>434926</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-04 12:35:17 -0700</bug_when>
    <thetext>Created attachment 434926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782054</commentid>
    <comment_count>27</comment_count>
      <attachid>434926</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-08-04 14:42:40 -0700</bug_when>
    <thetext>Comment on attachment 434926
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:-132
&gt; -        tearDownVideoRendering();

Last changed in 2011!

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2429
&gt;      m_videoOutputDelegate = adoptNS([[WebCoreAVFPullDelegate alloc] init]);
&gt; +    [m_videoOutputDelegate setParent:*this];

Nit: since you pass a reference, and so never need to clear the parent, you could add an initializer and pass it there.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2513
&gt; +    updateLastImage(UpdateType::UpdateSynchronously);

Is it OK to ignore the old warning about not doing this synchronously?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2566
&gt; +    bool satisfied = timeoutTimer.isActive();

Isn&apos;t there is a (very) small chance that this will be wrong because you check the timer after the logging above?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2568
&gt; +        INFO_LOG(LOGIDENTIFIER, &quot;timed out&quot;);

Why not log this as an error so it always shows up in logs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782096</commentid>
    <comment_count>28</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-04 16:46:14 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #27)
&gt; Comment on attachment 434926 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434926&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:-132
&gt; &gt; -        tearDownVideoRendering();
&gt; 
&gt; Last changed in 2011!

:-D

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2429
&gt; &gt;      m_videoOutputDelegate = adoptNS([[WebCoreAVFPullDelegate alloc] init]);
&gt; &gt; +    [m_videoOutputDelegate setParent:*this];
&gt; 
&gt; Nit: since you pass a reference, and so never need to clear the parent, you
&gt; could add an initializer and pass it there.

Good idea. I&apos;ll make it the same signature as WebCoreAVFLoaderDelegate.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2513
&gt; &gt; +    updateLastImage(UpdateType::UpdateSynchronously);
&gt; 
&gt; Is it OK to ignore the old warning about not doing this synchronously?

Lol yes. Because later on in updateLastImage(), it used to call into AVAssetImageGenerator, which is super synchronous.

Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2566
&gt; &gt; +    bool satisfied = timeoutTimer.isActive();
&gt; 
&gt; Isn&apos;t there is a (very) small chance that this will be wrong because you
&gt; check the timer after the logging above?

I don&apos;t think so? The timer&apos;s time might be up, but it hasn&apos;t fired yet (because it has to run on the main run-loop).

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2568
&gt; &gt; +        INFO_LOG(LOGIDENTIFIER, &quot;timed out&quot;);
&gt; 
&gt; Why not log this as an error so it always shows up in logs?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782108</commentid>
    <comment_count>29</comment_count>
      <attachid>434955</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-04 17:30:50 -0700</bug_when>
    <thetext>Created attachment 434955
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782314</commentid>
    <comment_count>30</comment_count>
      <attachid>435016</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-05 13:00:55 -0700</bug_when>
    <thetext>Created attachment 435016
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782336</commentid>
    <comment_count>31</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-05 14:16:21 -0700</bug_when>
    <thetext>&lt;rdar://81542859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782483</commentid>
    <comment_count>32</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-08-06 07:46:46 -0700</bug_when>
    <thetext>Looks like the EWS failures are due to https://trac.webkit.org/changeset/280702/webkit. Landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782490</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-06 08:09:27 -0700</bug_when>
    <thetext>Committed r280723 (240314@main): &lt;https://commits.webkit.org/240314@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435016.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434458</attachid>
            <date>2021-07-28 13:39:31 -0700</date>
            <delta_ts>2021-07-28 13:56:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228560-20210728133930.patch</filename>
            <type>text/plain</type>
            <size>13717</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uYTBmMDdkMTdmMjgzZmYxZTU0MzM5NjkwYjhmNDlh
OGExOGJmNDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIHVzZWQgd2hl
biB0aGVyZSBpcyBub3QgeWV0IGFuIGF2YWlsYWJsZSBpbWFnZSBmcm9tIEFWUGxheWVySXRlbVZp
ZGVvT3V0cHV0LgorICAgICAgICBIb3dldmVyLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IgaXMgYSBz
eW5jaHJvbm91cyBBUEkgY2FsbDsgaWYgZGF0YSBmb3IgdGhlIGN1cnJlbnQgdGltZSBpcyBub3Qg
YXZhaWxhYmxlLAorICAgICAgICB0aGUgZ2VuZXJhdG9yIHdpbGwgY2F1c2UgYSByZXF1ZXN0IGZv
ciB0aGF0IGRhdGEgdG8gYmUgaXNzdWVkLCBhbmQgaWYgdGhlIG1haW4gdGhyZWFkIGlzIGJsb2Nr
ZWQgaW4gYQorICAgICAgICBzeW5jaHJvbm91cyBjYWxsIHRvIHRoZSBnZW5lcmF0b3IsIHRoYXQg
cmVxdWVzdCBjYW4gbmV2ZXIgYmUgY29tcGxldGVkLCBjYXVzaW5nIGEgZGVhZGxvY2suCisKKyAg
ICAgICAgSW5zdGVhZCwgYWx3YXlzIGJsb2NrIG1vdmluZyB0byBhIHJlYWR5U3RhdGUgPj0gSEFW
RV9DVVJSRU5UX0RBVEEgdW50aWwgZWl0aGVyIHRoZSBBVlBsYXllckxheWVyIG9yCisgICAgICAg
IHRoZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dCByZXBvcnQgaGF2aW5nIGFuIGF2YWlsYWJsZSBm
cmFtZS4gVGhpcyBwcmV2ZW50cyBjbGllbnRzIGZyb20gYXR0ZW1wdGluZworICAgICAgICB0byBw
YWludCB1bnRpbCBhIGZyYW1lIGlzIGF2YWlsYWJsZSwgYW5kIGVuc3VyZXMgdGhhdCB3ZSB3aWxs
IGFsd2F5cyBoYXZlIGFuIGF2YWlsYWJsZSBmcmFtZSBmb3IKKyAgICAgICAgcGFpbnRpbmcsIHJl
bW92aW5nIHRoZSBuZWVkIGZvciB0aGUgc3luY2hyb25vdXMgZ2VuZXJhdG9yIGNhbGwuCisKKyAg
ICAgICAgVG8gZW5zdXJlIHRoZSByZWFkeVN0YXRlIGlzIHVwZGF0ZWQgd2hlbiBBVlBsYXllckl0
ZW1WaWRlb091dHB1dCBoYXMgYW4gYXZhaWxhYmxlIGltYWdlLCByZWdpc3RlcgorICAgICAgICB3
aXRoIHRoZSBvdXRwdXQgYXQgY3JlYXRpb24gdGltZSBmb3IgYSBub3RpZmljYXRpb24gYXMgc29v
biBhcyBhbiBpbWFnZSBpcyBhdmFpbGFibGUuIEFuZCBpbiB0aGUgZXhpc3RpbmcKKyAgICAgICAg
ZGVsZWdhdGUgb2JqZWN0LCBzZW5kIGEgbWVzc2FnZSBiYWNrIHRvIHRoZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIHdoZW4gdGhhdCBvY2N1cnMuCisKKyAgICAgICAgTm8gdGVz
dHMgbmVlZGVkOyB0aGlzIHNob3VsZCByZWR1Y2UgZmxha2luZXNzIG9mIGV4aXN0aW5nIHRlc3Rz
IGFuZCBjYXVzZSBubyByZWdyZXNzaW9uIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVw
ZGF0ZVN0YXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1Jl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1
dE1lZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAoLVtX
ZWJDb3JlQVZGUHVsbERlbGVnYXRlIHNldFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViQ29yZUFW
RlB1bGxEZWxlZ2F0ZSBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOl0pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5l
cmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6ZGVzdHJveUltYWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aElt
YWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IERlbGV0ZWQu
CisKIDIwMjEtMDctMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBQbGF5YmFjayBzdGFsbHMgb24gYmlsaWJpbGkuY29tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0Nzg2NzQ2OWNlMzE4ZGQ2MzQ2YzE4ZTRlNGQyMzUxMTgwZDQ2MGFhLi4zYmIwNTll
NzdkZjU3MmU1YjQyYTUzZWY4ZDYwZjRjZmUyNjlhZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMS0wNy0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5l
cmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaDoKKwogMjAyMS0wNy0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBh
ZnRlciByMjc5OTEyICgyMzk2NjFAbWFpbik7IEFkb3B0IEhBVkUoU1lTVEVNX1NUQVRVUykgbWFj
cm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oCmluZGV4IGY2MWY3ZjU3NzVlMjU4ZjI5OWFkODIwOWFjYzQxMjFjZjU2Y2FhYmQuLmIx
ZjNkODc3ZThhZGU2YjY5NDFkYjE4M2Q1ZGYxMmM3MWI3MjVmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC0zNiw5ICsz
NiwxMCBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRDYWNoZV9Qcml2YXRlLmg+CiAj
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZPdXRwdXRDb250ZXh0X1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVk91dHB1dERldmljZS5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
UGxheWVyX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1PdXRw
dXRfUHJpdmF0ZS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbV9Qcml2YXRl
Lmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJMYXllcl9Qcml2YXRlLmg+CisjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJfUHJpdmF0ZS5oPgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKQEAgLTQzNiw1ICs0
MzcsMTAgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiBAZW5kCiAjZW5kaWYKIAorI2ltcG9ydCA8
QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbU91dHB1dC5oPgorQGludGVyZmFjZSBBVlBsYXllckl0
ZW1WaWRlb091dHB1dCAoQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXRBU0FQKQorLSAodm9pZClyZXF1
ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFDaGFuZ2VBc1Nvb25Bc1Bvc3NpYmxlCitAZW5kCisK
ICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2VuZGlmIC8vIEhBVkUoQVZTQU1Q
TEVCVUZGRVJWSURFT09VVFBVVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYmJkNTYwYWQ0Y2EwMDA5MWFjMTliZDNm
ZWY5YWQyZmNiZWUwMDMxNi4uMjYxODU2MGVkZDE3YmYxMTM0NGRiNWU4NTUwNjJjMGFjOGU4MjEw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKQEAgLTU0MywxMSArNTQzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICB9CiAgICAgfQogCisgICAgaWYg
KG5ld1JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0
YSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmICFoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkpIHsKKyAg
ICAgICAgbmV3UmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRh
dGE7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiFoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCksIGxvd2VyaW5nIHJlYWR5U3RhdGUgdG8gIiwgbmV3UmVhZHlTdGF0ZSk7CisgICAg
fQorCiAgICAgaWYgKGlzUmVhZHlGb3JWaWRlb1NldHVwKCkgJiYgY3VycmVudFJlbmRlcmluZ01v
ZGUoKSAhPSBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkpCiAgICAgICAgIHNldFVwVmlkZW9SZW5k
ZXJpbmcoKTsKIAogICAgIGlmICghbV9oYXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgJiYgbV9j
YWNoZWRIYXNWaWRlbyAmJiBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkpIHsKLSAgICAgICAgaWYg
KG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEp
CisgICAgICAgIGlmIChuZXdSZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVDdXJyZW50RGF0YSkKICAgICAgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOwogICAgICAgICBtX2hhdmVSZXBvcnRlZEZpcnN0
VmlkZW9GcmFtZSA9IHRydWU7CiAgICAgICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFp
bGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2YTg1Yzg0OWRlZDE5MzJkNWU2Zjg1
NmMxODU1YWIwMTE0OWZiZGVlLi5lY2UyYTMxZDk4MjQyNWJmNTVkMjc5NmMyY2E5NGYzMWM3ZDAz
M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xMTgsNiArMTE4LDggQEAgcHVibGljOgog
CiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsKIAorICAgIHZv
aWQgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworCiBwcml2YXRlOgogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNl
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA0YTRhNmRjMjZiZWJmZWM1ZTJl
NmFmZDJiMDhkMDc0NWIxODU0MTZjLi44NDk5ZDljM2VmNzQ3ZGEzNzY0NjQwNGZkNmI1ZDRjZjVk
MDJkNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3LDcgKzY3LDYgQEAKICNpbXBv
cnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMu
aCIKICNpbXBvcnQgIldlYkNvcmVOU1VSTFNlc3Npb24uaCIKLSNpbXBvcnQgPEFWRm91bmRhdGlv
bi9BVkFzc2V0SW1hZ2VHZW5lcmF0b3IuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0
VHJhY2suaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3JvdXAuaD4K
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1ldGFkYXRhSXRlbS5oPgpAQCAtMTk2LDYgKzE5NSw3
IEBAIEBlbmQKIEBpbnRlcmZhY2UgV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSA6IE5TT2JqZWN0PEFW
UGxheWVySXRlbU91dHB1dFB1bGxEZWxlZ2F0ZT4gewogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3Nl
bWFwaG9yZTsKIH0KKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDJilwYXJlbnQ7CiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxD
aGFuZ2U6KEFWUGxheWVySXRlbU91dHB1dCAqKXNlbmRlcjsKIC0gKHZvaWQpb3V0cHV0U2VxdWVu
Y2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1PdXRwdXQgKilvdXRwdXQ7CiAKQEAgLTU2MSw3ICs1
NjEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0xheWVy
UmVuZGVyZXIoKSBjb25zdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Omhhc0NvbnRleHRSZW5kZXJlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9PdXRw
dXQgfHwgbV9pbWFnZUdlbmVyYXRvcjsKKyAgICByZXR1cm4gbV92aWRlb091dHB1dDsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0Vmlk
ZW9SZW5kZXJlcigpCkBAIC01NjksMzUgKzU2OSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKQogICAgIGNyZWF0
ZVZpZGVvT3V0cHV0KCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIpOwotCi0gICAgaWYgKCFtX2F2QXNzZXQgfHwgbV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9pbWFnZUdlbmVyYXRvciA9IFtQQUw6OmdldEFWQXNzZXRJbWFnZUdl
bmVyYXRvckNsYXNzKCkgYXNzZXRJbWFnZUdlbmVyYXRvcldpdGhBc3NldDptX2F2QXNzZXQuZ2V0
KCldOwotCi0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNz
ZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmVdOwotICAgIFttX2ltYWdl
R2VuZXJhdG9yLmdldCgpIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwot
ICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZv
cmU6UEFMOjprQ01UaW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVx
dWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6a0NNVGltZVplcm9dOwotfQotCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5k
ZXJlcigpCiB7CiAgICAgZGVzdHJveVZpZGVvT3V0cHV0KCk7Ci0gICAgZGVzdHJveUltYWdlR2Vu
ZXJhdG9yKCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
ZGVzdHJveUltYWdlR2VuZXJhdG9yKCkKLXsKLSAgICBpZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgbV9p
bWFnZUdlbmVyYXRvciA9IDA7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXllcigpCkBAIC0xODEzLDggKzE3ODcsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udAogICAgIC8vIHRoZSB2aWRlbyBvdXRwdXQsIHRvby4KICAgICBpZiAo
dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpIHx8IChtX3ZpZGVvT3V0cHV0ICYmIG1fbGFz
dFBpeGVsQnVmZmVyKSkKICAgICAgICAgcGFpbnRXaXRoVmlkZW9PdXRwdXQoY29udGV4dCwgcmVj
dCk7Ci0gICAgZWxzZQotICAgICAgICBwYWludFdpdGhJbWFnZUdlbmVyYXRvcihjb250ZXh0LCBy
ZWN0KTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBzZXREZWxheUNhbGxi
YWNrcyhmYWxzZSk7CkBAIC0xODM4LDM4ICsxODEwLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEYKICAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFnZUdl
bmVyYXRvcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
LXsKLSAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLQotICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBpbWFnZSA9IGNyZWF0ZUltYWdlRm9yVGltZUluUmVjdChjdXJyZW50VGltZSgpLCByZWN0
KTsKLSAgICBpZiAoaW1hZ2UpIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKGNvbnRleHQpOwotICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwg
cmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKLSAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNp
emUoMS4wZiwgLTEuMGYpKTsKLSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25R
dWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5OjpMb3cpOwotICAgICAgICBJbnRSZWN0IHBhaW50
UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkp
KTsKLSAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCks
IENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSks
IGltYWdlLmdldCgpKTsKLSAgICB9Ci19Ci0KLVJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoZmxv
YXQgdGltZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQotewotICAgIGlmICghbV9pbWFnZUdlbmVy
YXRvcikKLSAgICAgICAgY3JlYXRlSW1hZ2VHZW5lcmF0b3IoKTsKLSAgICBBU1NFUlQobV9pbWFn
ZUdlbmVyYXRvcik7Ci0KLSAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6
bm93KCk7Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1Np
emUocmVjdC5zaXplKCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBh
ZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6Q01U
aW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7
Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRl
Q29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLmdldCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpKSk7
Ci0KLSAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiY3JlYXRpbmcgaW1hZ2UgdG9vayAiLCAo
TW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKLQotICAgIHJldHVybiBp
bWFnZTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
c3VwcG9ydGVkVHlwZXMpCiB7CiAgICAgc3VwcG9ydGVkVHlwZXMgPSBBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6c2luZ2xldG9uKCkuc3VwcG9ydGVkVHlwZXMoKTsKQEAgLTI0NDAsMTEgKzIzODAsMjAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091
dHB1dCgpCiAgICAgfQogCiAgICAgbV92aWRlb091dHB1dERlbGVnYXRlID0gYWRvcHROUyhbW1dl
YkNvcmVBVkZQdWxsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbbV92aWRlb091dHB1dERl
bGVnYXRlIHNldFBhcmVudDoqdGhpc107CiAgICAgW21fdmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6
bV92aWRlb091dHB1dERlbGVnYXRlLmdldCgpIHF1ZXVlOmdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVl
KCldOwogCisgICAgaWYgKFttX3ZpZGVvT3V0cHV0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IocmVxdWVzdE5vdGlmaWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQb3NzaWJsZSld
KQorICAgICAgICBbbV92aWRlb091dHB1dCByZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFD
aGFuZ2VBc1Nvb25Bc1Bvc3NpYmxlXTsKKwogICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBhZGRP
dXRwdXQ6bV92aWRlb091dHB1dC5nZXQoKV07CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpCit7CisgICAgdXBk
YXRlU3RhdGVzKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIHsKICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCkBAIC0y
NTM5LDEyICsyNDg4LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogICAgIEZsb2F0UmVj
dCBpbWFnZVJlY3QgeyBGbG9hdFBvaW50Ojp6ZXJvKCksIG1fbGFzdEltYWdlLT5zaXplKCkgfTsK
ICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbV9sYXN0SW1hZ2UsIGltYWdlUmVjdC5zaXpl
KCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIGNyZWF0ZWQg
YW4gQVZBc3NldEltYWdlR2VuZXJhdG9yIGluIHRoZSBwYXN0IGR1ZSB0byBtX3ZpZGVvT3V0cHV0
IG5vdCBoYXZpbmcgYW4gYXZhaWxhYmxlCi0gICAgLy8gdmlkZW8gZnJhbWUsIGRlc3Ryb3kgaXQg
bm93IHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KLSAgICBpZiAobV9pbWFnZUdlbmVyYXRv
cikKLSAgICAgICAgZGVzdHJveUltYWdlR2VuZXJhdG9yKCk7Ci0KIH0KIAogUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKQpAQCAtMzg5OSwxNCArMzg0MiwyNSBAQCAtICh2b2lkKXJl
c291cmNlTG9hZGVyOihBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKilyZXNvdXJjZUxvYWRlciBkaWRD
YW5jZWxMb2FkaW5nUgogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAgV2Vh
a1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGFyZW50
OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIAorLSAodm9pZClz
ZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMmKXBh
cmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworfQorCiAtICh2b2lk
KW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0
cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1hcGhvcmUuc2lnbmFs
KCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwYXJlbnQgPSBfcGFyZW50XSB7Cisg
ICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPm91dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0ZsdXNo
ZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0Cg==
</data>
<flag name="commit-queue"
          id="456958"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434460</attachid>
            <date>2021-07-28 13:46:57 -0700</date>
            <delta_ts>2021-07-28 14:17:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228560-20210728134657.patch</filename>
            <type>text/plain</type>
            <size>13736</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uYTBmMDdkMTdmMjgzZmYxZTU0MzM5NjkwYjhmNDlh
OGExOGJmNDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIHVzZWQgd2hl
biB0aGVyZSBpcyBub3QgeWV0IGFuIGF2YWlsYWJsZSBpbWFnZSBmcm9tIEFWUGxheWVySXRlbVZp
ZGVvT3V0cHV0LgorICAgICAgICBIb3dldmVyLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IgaXMgYSBz
eW5jaHJvbm91cyBBUEkgY2FsbDsgaWYgZGF0YSBmb3IgdGhlIGN1cnJlbnQgdGltZSBpcyBub3Qg
YXZhaWxhYmxlLAorICAgICAgICB0aGUgZ2VuZXJhdG9yIHdpbGwgY2F1c2UgYSByZXF1ZXN0IGZv
ciB0aGF0IGRhdGEgdG8gYmUgaXNzdWVkLCBhbmQgaWYgdGhlIG1haW4gdGhyZWFkIGlzIGJsb2Nr
ZWQgaW4gYQorICAgICAgICBzeW5jaHJvbm91cyBjYWxsIHRvIHRoZSBnZW5lcmF0b3IsIHRoYXQg
cmVxdWVzdCBjYW4gbmV2ZXIgYmUgY29tcGxldGVkLCBjYXVzaW5nIGEgZGVhZGxvY2suCisKKyAg
ICAgICAgSW5zdGVhZCwgYWx3YXlzIGJsb2NrIG1vdmluZyB0byBhIHJlYWR5U3RhdGUgPj0gSEFW
RV9DVVJSRU5UX0RBVEEgdW50aWwgZWl0aGVyIHRoZSBBVlBsYXllckxheWVyIG9yCisgICAgICAg
IHRoZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dCByZXBvcnQgaGF2aW5nIGFuIGF2YWlsYWJsZSBm
cmFtZS4gVGhpcyBwcmV2ZW50cyBjbGllbnRzIGZyb20gYXR0ZW1wdGluZworICAgICAgICB0byBw
YWludCB1bnRpbCBhIGZyYW1lIGlzIGF2YWlsYWJsZSwgYW5kIGVuc3VyZXMgdGhhdCB3ZSB3aWxs
IGFsd2F5cyBoYXZlIGFuIGF2YWlsYWJsZSBmcmFtZSBmb3IKKyAgICAgICAgcGFpbnRpbmcsIHJl
bW92aW5nIHRoZSBuZWVkIGZvciB0aGUgc3luY2hyb25vdXMgZ2VuZXJhdG9yIGNhbGwuCisKKyAg
ICAgICAgVG8gZW5zdXJlIHRoZSByZWFkeVN0YXRlIGlzIHVwZGF0ZWQgd2hlbiBBVlBsYXllckl0
ZW1WaWRlb091dHB1dCBoYXMgYW4gYXZhaWxhYmxlIGltYWdlLCByZWdpc3RlcgorICAgICAgICB3
aXRoIHRoZSBvdXRwdXQgYXQgY3JlYXRpb24gdGltZSBmb3IgYSBub3RpZmljYXRpb24gYXMgc29v
biBhcyBhbiBpbWFnZSBpcyBhdmFpbGFibGUuIEFuZCBpbiB0aGUgZXhpc3RpbmcKKyAgICAgICAg
ZGVsZWdhdGUgb2JqZWN0LCBzZW5kIGEgbWVzc2FnZSBiYWNrIHRvIHRoZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIHdoZW4gdGhhdCBvY2N1cnMuCisKKyAgICAgICAgTm8gdGVz
dHMgbmVlZGVkOyB0aGlzIHNob3VsZCByZWR1Y2UgZmxha2luZXNzIG9mIGV4aXN0aW5nIHRlc3Rz
IGFuZCBjYXVzZSBubyByZWdyZXNzaW9uIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVw
ZGF0ZVN0YXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1Jl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1
dE1lZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAoLVtX
ZWJDb3JlQVZGUHVsbERlbGVnYXRlIHNldFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViQ29yZUFW
RlB1bGxEZWxlZ2F0ZSBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOl0pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5l
cmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6ZGVzdHJveUltYWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aElt
YWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IERlbGV0ZWQu
CisKIDIwMjEtMDctMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBQbGF5YmFjayBzdGFsbHMgb24gYmlsaWJpbGkuY29tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0Nzg2NzQ2OWNlMzE4ZGQ2MzQ2YzE4ZTRlNGQyMzUxMTgwZDQ2MGFhLi4zYmIwNTll
NzdkZjU3MmU1YjQyYTUzZWY4ZDYwZjRjZmUyNjlhZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMS0wNy0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5l
cmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaDoKKwogMjAyMS0wNy0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBh
ZnRlciByMjc5OTEyICgyMzk2NjFAbWFpbik7IEFkb3B0IEhBVkUoU1lTVEVNX1NUQVRVUykgbWFj
cm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oCmluZGV4IGY2MWY3ZjU3NzVlMjU4ZjI5OWFkODIwOWFjYzQxMjFjZjU2Y2FhYmQuLmEy
MTdmYWI4NTQxYjU5M2VlMDJlMTQ0NDc0NDNlZmJkODA2OTA2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC0zNiw5ICsz
NiwxMCBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRDYWNoZV9Qcml2YXRlLmg+CiAj
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZPdXRwdXRDb250ZXh0X1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVk91dHB1dERldmljZS5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
UGxheWVyX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1PdXRw
dXRfUHJpdmF0ZS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbV9Qcml2YXRl
Lmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJMYXllcl9Qcml2YXRlLmg+CisjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJfUHJpdmF0ZS5oPgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKQEAgLTE5NSw2ICsx
OTYsMTEgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U09VUkNFKQogCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJJdGVtT3V0cHV0Lmg+CitA
aW50ZXJmYWNlIEFWUGxheWVySXRlbVZpZGVvT3V0cHV0IChBVlBsYXllckl0ZW1WaWRlb091dHB1
dEFTQVApCistICh2b2lkKXJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZUFzU29v
bkFzUG9zc2libGUKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckxheWVyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGJiZDU2
MGFkNGNhMDAwOTFhYzE5YmQzZmVmOWFkMmZjYmVlMDAzMTYuLjI2MTg1NjBlZGQxN2JmMTEzNDRk
YjVlODU1MDYyYzBhYzhlODIxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01NDMsMTEgKzU0MywxNiBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAg
fQogICAgIH0KIAorICAgIGlmIChuZXdSZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlOjpIYXZlQ3VycmVudERhdGEgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiAhaGFzQXZhaWxhYmxl
VmlkZW9GcmFtZSgpKSB7CisgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
ICIhaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpLCBsb3dlcmluZyByZWFkeVN0YXRlIHRvICIsIG5l
d1JlYWR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChpc1JlYWR5Rm9yVmlkZW9TZXR1cCgpICYm
IGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgIT0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpKQogICAg
ICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKICAgICBpZiAoIW1faGF2ZVJlcG9ydGVkRmly
c3RWaWRlb0ZyYW1lICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgaGFzQXZhaWxhYmxlVmlkZW9GcmFt
ZSgpKSB7Ci0gICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZTo6SGF2ZUN1cnJlbnREYXRhKQorICAgICAgICBpZiAobmV3UmVhZHlTdGF0ZSA8IE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpCiAgICAgICAgICAgICBuZXdSZWFkeVN0
YXRlID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YTsKICAgICAgICAg
bV9oYXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgPSB0cnVlOwogICAgICAgICBtX3BsYXllci0+
Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4
NWM4NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDExNDlmYmRlZS4uZWNlMmEzMWQ5ODI0MjViZjU1
ZDI3OTZjMmNhOTRmMzFjN2QwMzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTE4LDYg
KzExOCw4IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29u
c3QgZmluYWw7CiAKKyAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogcHJp
dmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgY2RtSW5zdGFuY2VB
dHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
NGE0YTZkYzI2YmViZmVjNWUyZTZhZmQyYjA4ZDA3NDViMTg1NDE2Yy4uODQ5OWQ5YzNlZjc0N2Rh
Mzc2NDY0MDRmZDZiNWQ0Y2Y1ZDAyZDYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02
Nyw3ICs2Nyw2IEBACiAjaW1wb3J0ICJXZWJDb3JlQ0FMYXllckV4dHJhcy5oIgogI2ltcG9ydCAi
V2ViQ29yZU5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiCi0j
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldEltYWdlR2VuZXJhdG9yLmg+CiAjaW1wb3J0IDxB
VkZvdW5kYXRpb24vQVZBc3NldFRyYWNrLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRp
YVNlbGVjdGlvbkdyb3VwLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZXRhZGF0YUl0ZW0u
aD4KQEAgLTE5Niw2ICsxOTUsNyBAQCBAZW5kCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZQdWxsRGVs
ZWdhdGUgOiBOU09iamVjdDxBVlBsYXllckl0ZW1PdXRwdXRQdWxsRGVsZWdhdGU+IHsKICAgICBC
aW5hcnlTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiB9CistICh2b2lkKXNldFBhcmVudDooV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50OwogLSAodm9pZClv
dXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXllckl0ZW1PdXRwdXQgKilzZW5kZXI7CiAt
ICh2b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtT3V0cHV0ICopb3V0
cHV0OwogCkBAIC01NjEsNyArNTYxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpoYXNMYXllclJlbmRlcmVyKCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdAogewotICAg
IHJldHVybiBtX3ZpZGVvT3V0cHV0IHx8IG1faW1hZ2VHZW5lcmF0b3I7CisgICAgcmV0dXJuIG1f
dmlkZW9PdXRwdXQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNTY5LDM1ICs1NjksOSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1Jl
bmRlcmVyKCkKICAgICBjcmVhdGVWaWRlb091dHB1dCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKLXsKLSAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLQotICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VH
ZW5lcmF0b3IpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSBbUEFM
OjpnZXRBVkFzc2V0SW1hZ2VHZW5lcmF0b3JDbGFzcygpIGFzc2V0SW1hZ2VHZW5lcmF0b3JXaXRo
QXNzZXQ6bV9hdkFzc2V0LmdldCgpXTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNl
dEFwZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFwZXJ0
dXJlXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJlZmVycmVkVHJh
Y2tUcmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0
ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOwotICAgIFttX2ltYWdlR2Vu
ZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVa
ZXJvXTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0
cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQogewogICAgIGRlc3Ryb3lWaWRlb091dHB1dCgpOwot
ICAgIGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgaWYgKCFt
X2ltYWdlR2VuZXJhdG9yKQotICAgICAgICByZXR1cm47Ci0KLSAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSAwOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQpAQCAtMTgxMyw4
ICsxNzg3LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnQKICAgICAvLyB0aGUgdmlkZW8gb3V0
cHV0LCB0b28uCiAgICAgaWYgKHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSB8fCAobV92
aWRlb091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1ZmZlcikpCiAgICAgICAgIHBhaW50V2l0aFZpZGVv
T3V0cHV0KGNvbnRleHQsIHJlY3QpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnRXaXRoSW1hZ2VH
ZW5lcmF0b3IoY29udGV4dCwgcmVjdCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwpAQCAtMTgzOCwzOCArMTgxMCw2IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29u
dGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBjcmVhdGVJbWFnZUZvclRpbWVJblJlY3Qo
Y3VycmVudFRpbWUoKSwgcmVjdCk7Ci0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC50
cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNv
bnRleHQuc2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKLSAg
ICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0
aCgpLCByZWN0LmhlaWdodCgpKSk7Ci0gICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBw
YWludFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7Ci0gICAgfQotfQotCi1SZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1h
Z2VGb3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAg
ICBpZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7
Ci0gICAgQVNTRVJUKG1faW1hZ2VHZW5lcmF0b3IpOwotCi0gICAgTW9ub3RvbmljVGltZSBzdGFy
dCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotCi0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkg
c2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJ
bWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRp
bWU6bmlsIGVycm9yOm5pbF0pOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFk
b3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JH
QkNvbG9yU3BhY2VSZWYoKSkpOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0
aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMo
KSk7Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKQogewogICAgIHN1cHBvcnRlZFR5cGVz
ID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRlZFR5cGVzKCk7CkBA
IC0yNDQwLDExICsyMzgwLDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQogICAgIH0KIAogICAgIG1fdmlkZW9PdXRwdXREZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZGUHVsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cisg
ICAgW21fdmlkZW9PdXRwdXREZWxlZ2F0ZSBzZXRQYXJlbnQ6KnRoaXNdOwogICAgIFttX3ZpZGVv
T3V0cHV0IHNldERlbGVnYXRlOm1fdmlkZW9PdXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9i
YWxQdWxsRGVsZWdhdGVRdWV1ZSgpXTsKIAorICAgIGlmIChbbV92aWRlb091dHB1dCByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5n
ZUFzU29vbkFzUG9zc2libGUpXSkKKyAgICAgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlm
aWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQb3NzaWJsZV07CisKICAgICBbbV9hdlBs
YXllckl0ZW0uZ2V0KCkgYWRkT3V0cHV0Om1fdmlkZW9PdXRwdXQuZ2V0KCldOwogfQogCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1dE1lZGlhRGF0YVdpbGxD
aGFuZ2UoKQoreworICAgIHVwZGF0ZVN0YXRlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb091dHB1dCgpCiB7CiAgICAgaWYgKCFt
X3ZpZGVvT3V0cHV0KQpAQCAtMjUzOSwxMiArMjQ4OCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0
JiBjCiAKICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0IHsgRmxvYXRQb2ludDo6emVybygpLCBtX2xh
c3RJbWFnZS0+c2l6ZSgpIH07CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKm1fbGFzdElt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwotCi0gICAgLy8g
SWYgd2UgaGF2ZSBjcmVhdGVkIGFuIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpbiB0aGUgcGFzdCBk
dWUgdG8gbV92aWRlb091dHB1dCBub3QgaGF2aW5nIGFuIGF2YWlsYWJsZQotICAgIC8vIHZpZGVv
IGZyYW1lLCBkZXN0cm95IGl0IG5vdyB0aGF0IGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCi0gICAg
aWYgKG1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpOwot
CiB9CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKQEAgLTM4OTksMTQgKzM4
NDIsMjUgQEAgLSAodm9pZClyZXNvdXJjZUxvYWRlcjooQVZBc3NldFJlc291cmNlTG9hZGVyICop
cmVzb3VyY2VMb2FkZXIgZGlkQ2FuY2VsTG9hZGluZ1IKIAogQGVuZAogCi1AaW1wbGVtZW50YXRp
b24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFdlYkNvcmVBVkZQdWxs
RGVsZWdhdGUgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQz4gX3BhcmVudDsKK30KIAogQHN5bnRoZXNpemUgc2VtYXBob3JlID0gbV9zZW1h
cGhvcmU7CiAKKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDJilwYXJlbnQKK3sKKyAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIocGFy
ZW50KTsKK30KKwogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXllckl0
ZW1WaWRlb091dHB1dCAqKW91dHB1dAogewogICAgIFVOVVNFRF9QQVJBTShvdXRwdXQpOwogICAg
IG1fc2VtYXBob3JlLnNpZ25hbCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcGFy
ZW50ID0gX3BhcmVudF0geworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFyZW50
LT5vdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIC0gKHZvaWQpb3V0
cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1WaWRlb091dHB1dCAqKW91dHB1dAo=
</data>
<flag name="commit-queue"
          id="456969"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434467</attachid>
            <date>2021-07-28 14:17:09 -0700</date>
            <delta_ts>2021-07-31 18:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228560-20210728141708.patch</filename>
            <type>text/plain</type>
            <size>13737</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uYTBmMDdkMTdmMjgzZmYxZTU0MzM5NjkwYjhmNDlh
OGExOGJmNDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIHVzZWQgd2hl
biB0aGVyZSBpcyBub3QgeWV0IGFuIGF2YWlsYWJsZSBpbWFnZSBmcm9tIEFWUGxheWVySXRlbVZp
ZGVvT3V0cHV0LgorICAgICAgICBIb3dldmVyLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IgaXMgYSBz
eW5jaHJvbm91cyBBUEkgY2FsbDsgaWYgZGF0YSBmb3IgdGhlIGN1cnJlbnQgdGltZSBpcyBub3Qg
YXZhaWxhYmxlLAorICAgICAgICB0aGUgZ2VuZXJhdG9yIHdpbGwgY2F1c2UgYSByZXF1ZXN0IGZv
ciB0aGF0IGRhdGEgdG8gYmUgaXNzdWVkLCBhbmQgaWYgdGhlIG1haW4gdGhyZWFkIGlzIGJsb2Nr
ZWQgaW4gYQorICAgICAgICBzeW5jaHJvbm91cyBjYWxsIHRvIHRoZSBnZW5lcmF0b3IsIHRoYXQg
cmVxdWVzdCBjYW4gbmV2ZXIgYmUgY29tcGxldGVkLCBjYXVzaW5nIGEgZGVhZGxvY2suCisKKyAg
ICAgICAgSW5zdGVhZCwgYWx3YXlzIGJsb2NrIG1vdmluZyB0byBhIHJlYWR5U3RhdGUgPj0gSEFW
RV9DVVJSRU5UX0RBVEEgdW50aWwgZWl0aGVyIHRoZSBBVlBsYXllckxheWVyIG9yCisgICAgICAg
IHRoZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dCByZXBvcnQgaGF2aW5nIGFuIGF2YWlsYWJsZSBm
cmFtZS4gVGhpcyBwcmV2ZW50cyBjbGllbnRzIGZyb20gYXR0ZW1wdGluZworICAgICAgICB0byBw
YWludCB1bnRpbCBhIGZyYW1lIGlzIGF2YWlsYWJsZSwgYW5kIGVuc3VyZXMgdGhhdCB3ZSB3aWxs
IGFsd2F5cyBoYXZlIGFuIGF2YWlsYWJsZSBmcmFtZSBmb3IKKyAgICAgICAgcGFpbnRpbmcsIHJl
bW92aW5nIHRoZSBuZWVkIGZvciB0aGUgc3luY2hyb25vdXMgZ2VuZXJhdG9yIGNhbGwuCisKKyAg
ICAgICAgVG8gZW5zdXJlIHRoZSByZWFkeVN0YXRlIGlzIHVwZGF0ZWQgd2hlbiBBVlBsYXllckl0
ZW1WaWRlb091dHB1dCBoYXMgYW4gYXZhaWxhYmxlIGltYWdlLCByZWdpc3RlcgorICAgICAgICB3
aXRoIHRoZSBvdXRwdXQgYXQgY3JlYXRpb24gdGltZSBmb3IgYSBub3RpZmljYXRpb24gYXMgc29v
biBhcyBhbiBpbWFnZSBpcyBhdmFpbGFibGUuIEFuZCBpbiB0aGUgZXhpc3RpbmcKKyAgICAgICAg
ZGVsZWdhdGUgb2JqZWN0LCBzZW5kIGEgbWVzc2FnZSBiYWNrIHRvIHRoZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDIHdoZW4gdGhhdCBvY2N1cnMuCisKKyAgICAgICAgTm8gdGVz
dHMgbmVlZGVkOyB0aGlzIHNob3VsZCByZWR1Y2UgZmxha2luZXNzIG9mIGV4aXN0aW5nIHRlc3Rz
IGFuZCBjYXVzZSBubyByZWdyZXNzaW9uIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVw
ZGF0ZVN0YXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1Jl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1
dE1lZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAoLVtX
ZWJDb3JlQVZGUHVsbERlbGVnYXRlIHNldFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViQ29yZUFW
RlB1bGxEZWxlZ2F0ZSBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOl0pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5l
cmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6ZGVzdHJveUltYWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aElt
YWdlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IERlbGV0ZWQu
CisKIDIwMjEtMDctMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBQbGF5YmFjayBzdGFsbHMgb24gYmlsaWJpbGkuY29tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0Nzg2NzQ2OWNlMzE4ZGQ2MzQ2YzE4ZTRlNGQyMzUxMTgwZDQ2MGFhLi4zYmIwNTll
NzdkZjU3MmU1YjQyYTUzZWY4ZDYwZjRjZmUyNjlhZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMS0wNy0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5l
cmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaDoKKwogMjAyMS0wNy0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBh
ZnRlciByMjc5OTEyICgyMzk2NjFAbWFpbik7IEFkb3B0IEhBVkUoU1lTVEVNX1NUQVRVUykgbWFj
cm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oCmluZGV4IGY2MWY3ZjU3NzVlMjU4ZjI5OWFkODIwOWFjYzQxMjFjZjU2Y2FhYmQuLmM2
YTUwYWZiZDQ1NDBmMWI5NGEyNzIwMjhlNjJiNzhkYTRkMDY1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC0zNiw5ICsz
NiwxMCBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRDYWNoZV9Qcml2YXRlLmg+CiAj
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZPdXRwdXRDb250ZXh0X1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVk91dHB1dERldmljZS5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
UGxheWVyX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1PdXRw
dXRfUHJpdmF0ZS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbV9Qcml2YXRl
Lmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJMYXllcl9Qcml2YXRlLmg+CisjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJfUHJpdmF0ZS5oPgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKQEAgLTE5NSw2ICsx
OTYsMTEgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U09VUkNFKQogCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJJdGVtT3V0cHV0Lmg+CitA
aW50ZXJmYWNlIEFWUGxheWVySXRlbVZpZGVvT3V0cHV0IChBVlBsYXllckl0ZW1WaWRlb091dHB1
dEFTQVApCistICh2b2lkKXJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZUFzU29v
bkFzUG9zc2libGU7CitAZW5kCisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJMYXllci5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiYmQ1
NjBhZDRjYTAwMDkxYWMxOWJkM2ZlZjlhZDJmY2JlZTAwMzE2Li4yNjE4NTYwZWRkMTdiZjExMzQ0
ZGI1ZTg1NTA2MmMwYWM4ZTgyMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNTQzLDExICs1NDMsMTYgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAgICAg
IH0KICAgICB9CiAKKyAgICBpZiAobmV3UmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZTo6SGF2ZUN1cnJlbnREYXRhICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgIWhhc0F2YWlsYWJs
ZVZpZGVvRnJhbWUoKSkgeworICAgICAgICBuZXdSZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAiIWhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSwgbG93ZXJpbmcgcmVhZHlTdGF0ZSB0byAiLCBu
ZXdSZWFkeVN0YXRlKTsKKyAgICB9CisKICAgICBpZiAoaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAm
JiBjdXJyZW50UmVuZGVyaW5nTW9kZSgpICE9IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSkKICAg
ICAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogCiAgICAgaWYgKCFtX2hhdmVSZXBvcnRlZEZp
cnN0VmlkZW9GcmFtZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhhc0F2YWlsYWJsZVZpZGVvRnJh
bWUoKSkgewotICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVDdXJyZW50RGF0YSkKKyAgICAgICAgaWYgKG5ld1JlYWR5U3RhdGUgPCBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKQogICAgICAgICAgICAgbmV3UmVhZHlT
dGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGE7CiAgICAgICAg
IG1faGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgbV9wbGF5ZXIt
PmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZh
ODVjODQ5ZGVkMTkzMmQ1ZTZmODU2YzE4NTVhYjAxMTQ5ZmJkZWUuLmVjZTJhMzFkOTgyNDI1YmY1
NWQyNzk2YzJjYTk0ZjMxYzdkMDMzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTExOCw2
ICsxMTgsOCBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNv
bnN0IGZpbmFsOwogCisgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGNkbUluc3RhbmNl
QXR0YWNoZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IDRhNGE2ZGMyNmJlYmZlYzVlMmU2YWZkMmIwOGQwNzQ1YjE4NTQxNmMuLjg0OTlkOWMzZWY3NDdk
YTM3NjQ2NDA0ZmQ2YjVkNGNmNWQwMmQ2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
NjcsNyArNjcsNiBAQAogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKICNpbXBvcnQg
IldlYkNvcmVOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIgot
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRJbWFnZUdlbmVyYXRvci5oPgogI2ltcG9ydCA8
QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVk
aWFTZWxlY3Rpb25Hcm91cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWV0YWRhdGFJdGVt
Lmg+CkBAIC0xOTYsNiArMTk1LDcgQEAgQGVuZAogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAg
QmluYXJ5U2VtYXBob3JlIG1fc2VtYXBob3JlOwogfQorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudDsKIC0gKHZvaWQp
b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJdGVtT3V0cHV0ICopc2VuZGVyOwog
LSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbU91dHB1dCAqKW91
dHB1dDsKIApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6aGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV92aWRlb091dHB1dCB8fCBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiBt
X3ZpZGVvT3V0cHV0OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTU2OSwzNSArNTY5LDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9S
ZW5kZXJlcigpCiAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdl
R2VuZXJhdG9yKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gW1BB
TDo6Z2V0QVZBc3NldEltYWdlR2VuZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJhdG9yV2l0
aEFzc2V0Om1fYXZBc3NldC5nZXQoKV07Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVy
dHVyZV07Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRy
YWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVz
dGVkVGltZVRvbGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdl
bmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1l
WmVyb107Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVz
dHJveUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIHsKICAgICBkZXN0cm95VmlkZW9PdXRwdXQoKTsK
LSAgICBkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKQotewotICAgIGlmICgh
bV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gMDsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKQEAgLTE4MTMs
OCArMTc4Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgLy8gdGhlIHZpZGVvIG91
dHB1dCwgdG9vLgogICAgIGlmICh2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkgfHwgKG1f
dmlkZW9PdXRwdXQgJiYgbV9sYXN0UGl4ZWxCdWZmZXIpKQogICAgICAgICBwYWludFdpdGhWaWRl
b091dHB1dChjb250ZXh0LCByZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHBhaW50V2l0aEltYWdl
R2VuZXJhdG9yKGNvbnRleHQsIHJlY3QpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKQEAgLTE4MzgsMzggKzE4MTAsNiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNv
bnRleHQsIHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gY3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KGN1cnJlbnRUaW1lKCksIHJlY3QpOwotICAgIGlmIChpbWFnZSkgewotICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAgIGNvbnRleHQu
dHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBj
b250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNl
dEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7Ci0g
ICAgICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkpOwotICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwg
cGFpbnRSZWN0LmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwotICAgIH0KLX0KLQotUmV0YWluUHRy
PENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUlt
YWdlRm9yVGltZUluUmVjdChmbG9hdCB0aW1lLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0g
ICAgaWYgKCFtX2ltYWdlR2VuZXJhdG9yKQotICAgICAgICBjcmVhdGVJbWFnZUdlbmVyYXRvcigp
OwotICAgIEFTU0VSVChtX2ltYWdlR2VuZXJhdG9yKTsKLQotICAgIE1vbm90b25pY1RpbWUgc3Rh
cnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgp
IHNldE1heGltdW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNH
SW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxU
aW1lOm5pbCBlcnJvcjpuaWxdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBh
ZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNS
R0JDb2xvclNwYWNlUmVmKCkpKTsKLQotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVh
dGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRz
KCkpOwotCi0gICAgcmV0dXJuIGltYWdlOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcykKIHsKICAgICBzdXBwb3J0ZWRUeXBl
cyA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0ZWRUeXBlcygpOwpA
QCAtMjQ0MCwxMSArMjM4MCwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KCkKICAgICB9CiAKICAgICBtX3ZpZGVvT3V0cHV0RGVs
ZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFttX3ZpZGVvT3V0cHV0RGVsZWdhdGUgc2V0UGFyZW50Oip0aGlzXTsKICAgICBbbV92aWRl
b091dHB1dCBzZXREZWxlZ2F0ZTptX3ZpZGVvT3V0cHV0RGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xv
YmFsUHVsbERlbGVnYXRlUXVldWUoKV07CiAKKyAgICBpZiAoW21fdmlkZW9PdXRwdXQgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFDaGFu
Z2VBc1Nvb25Bc1Bvc3NpYmxlKV0pCisgICAgICAgIFttX3ZpZGVvT3V0cHV0IHJlcXVlc3ROb3Rp
ZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZUFzU29vbkFzUG9zc2libGVdOworCiAgICAgW21fYXZQ
bGF5ZXJJdGVtLmdldCgpIGFkZE91dHB1dDptX3ZpZGVvT3V0cHV0LmdldCgpXTsKIH0KIAordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRNZWRpYURhdGFXaWxs
Q2hhbmdlKCkKK3sKKyAgICB1cGRhdGVTdGF0ZXMoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95VmlkZW9PdXRwdXQoKQogewogICAgIGlmICgh
bV92aWRlb091dHB1dCkKQEAgLTI1MzksMTIgKzI0ODgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4
dCYgYwogCiAgICAgRmxvYXRSZWN0IGltYWdlUmVjdCB7IEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9s
YXN0SW1hZ2UtPnNpemUoKSB9OwogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCptX2xhc3RJ
bWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgb3V0cHV0UmVjdCwgaW1hZ2VSZWN0KTsKLQotICAgIC8v
IElmIHdlIGhhdmUgY3JlYXRlZCBhbiBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IgaW4gdGhlIHBhc3Qg
ZHVlIHRvIG1fdmlkZW9PdXRwdXQgbm90IGhhdmluZyBhbiBhdmFpbGFibGUKLSAgICAvLyB2aWRl
byBmcmFtZSwgZGVzdHJveSBpdCBub3cgdGhhdCBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgotICAg
IGlmIChtX2ltYWdlR2VuZXJhdG9yKQotICAgICAgICBkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKTsK
LQogfQogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCkBAIC0zODk5LDE0ICsz
ODQyLDI1IEBAIC0gKHZvaWQpcmVzb3VyY2VMb2FkZXI6KEFWQXNzZXRSZXNvdXJjZUxvYWRlciAq
KXJlc291cmNlTG9hZGVyIGRpZENhbmNlbExvYWRpbmdSCiAKIEBlbmQKIAotQGltcGxlbWVudGF0
aW9uIFdlYkNvcmVBVkZQdWxsRGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVs
bERlbGVnYXRlIHsKKyAgICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM+IF9wYXJlbnQ7Cit9CiAKIEBzeW50aGVzaXplIHNlbWFwaG9yZSA9IG1fc2Vt
YXBob3JlOwogCistICh2b2lkKXNldFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50Cit7CisgICAgX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBh
cmVudCk7Cit9CisKIC0gKHZvaWQpb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJ
dGVtVmlkZW9PdXRwdXQgKilvdXRwdXQKIHsKICAgICBVTlVTRURfUEFSQU0ob3V0cHV0KTsKICAg
ICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Bh
cmVudCA9IF9wYXJlbnRdIHsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAgIHBhcmVu
dC0+b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworICAgIH0pOwogfQogCiAtICh2b2lkKW91
dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRwdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434471</attachid>
            <date>2021-07-28 15:11:31 -0700</date>
            <delta_ts>2021-07-28 23:35:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210728151130.patch</filename>
            <type>text/plain</type>
            <size>13967</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uNTJkODQzYjY4YzEyMTEzZDk1YzgxZjBmZTc5YTg4
YTg5Yzc3NTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbSBBVlBsYXllckl0ZW1WaWRl
b091dHB1dC4KKyAgICAgICAgSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEgZm9yIHRoZSBjdXJyZW50IHRpbWUgaXMgbm90IGF2
YWlsYWJsZSwKKyAgICAgICAgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBpcyBibG9ja2Vk
IGluIGEKKyAgICAgICAgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0IHJl
cXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2NrLgorCisgICAg
ICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRlID49IEhBVkVf
Q1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUgQVZQbGF5ZXJMYXllciBvcgorICAgICAgICB0
aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFpbGFibGUgZnJh
bWUuIFRoaXMgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRpbmcKKyAgICAgICAgdG8gcGFp
bnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBh
bHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yCisgICAgICAgIHBhaW50aW5nLCByZW1v
dmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzIGdlbmVyYXRvciBjYWxsLgorCisgICAg
ICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVkIHdoZW4gQVZQbGF5ZXJJdGVt
VmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwgcmVnaXN0ZXIKKyAgICAgICAgd2l0
aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90aWZpY2F0aW9uIGFzIHNvb24g
YXMgYW4gaW1hZ2UgaXMgYXZhaWxhYmxlLiBBbmQgaW4gdGhlIGV4aXN0aW5nCisgICAgICAgIGRl
bGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0aGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQgb2NjdXJzLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZsYWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBh
bmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRh
dGVTdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRN
ZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSBzZXRQYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTpdKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFn
ZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QpOiBEZWxldGVkLgor
CiAyMDIxLTA3LTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gUGxheWJhY2sgc3RhbGxzIG9uIGJpbGliaWxpLmNvbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggNDc4Njc0NjljZTMxOGRkNjM0NmMxOGU0ZTRkMjM1MTE4MGQ0NjBhYS4uOGM1ZTBhMzRl
ZTJkYzkzNDdhN2QwMTkzZjUxYjI4NzA0MWQwOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjEtMDctMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIxLTA3LTE0ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVy
IHIyNzk5MTIgKDIzOTY2MUBtYWluKTsgQWRvcHQgSEFWRShTWVNURU1fU1RBVFVTKSBtYWNyby4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJ
LmgKaW5kZXggZjYxZjdmNTc3NWUyNThmMjk5YWQ4MjA5YWNjNDEyMWNmNTZjYWFiZC4uYzZhNTBh
ZmJkNDU0MGYxYjk0YTI3MjAyOGU2MmI3OGRhNGQwNjU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTM2LDkgKzM2LDEw
IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldENhY2hlX1ByaXZhdGUuaD4KICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVk91dHB1dENvbnRleHRfUHJpdmF0ZS5oPgogI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWT3V0cHV0RGV2aWNlLmg+Ci0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5
ZXJfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbU91dHB1dF9Q
cml2YXRlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJJdGVtX1ByaXZhdGUuaD4K
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckxheWVyX1ByaXZhdGUuaD4KKyNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVlBsYXllcl9Qcml2YXRlLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQpAQCAtMTk1LDYgKzE5Niwx
MSBAQCBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VS
Q0UpCiAKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1PdXRwdXQuaD4KK0BpbnRl
cmZhY2UgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKEFWUGxheWVySXRlbVZpZGVvT3V0cHV0QVNB
UCkKKy0gKHZvaWQpcmVxdWVzdE5vdGlmaWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQ
b3NzaWJsZTsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckxheWVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGJiZDU2MGFk
NGNhMDAwOTFhYzE5YmQzZmVmOWFkMmZjYmVlMDAzMTYuLjI2MTg1NjBlZGQxN2JmMTEzNDRkYjVl
ODU1MDYyYzBhYzhlODIxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01NDMsMTEgKzU0MywxNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgfQog
ICAgIH0KIAorICAgIGlmIChuZXdSZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
OjpIYXZlQ3VycmVudERhdGEgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiAhaGFzQXZhaWxhYmxlVmlk
ZW9GcmFtZSgpKSB7CisgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZTo6SGF2ZU1ldGFkYXRhOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIh
aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpLCBsb3dlcmluZyByZWFkeVN0YXRlIHRvICIsIG5ld1Jl
YWR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChpc1JlYWR5Rm9yVmlkZW9TZXR1cCgpICYmIGN1
cnJlbnRSZW5kZXJpbmdNb2RlKCkgIT0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpKQogICAgICAg
ICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKICAgICBpZiAoIW1faGF2ZVJlcG9ydGVkRmlyc3RW
aWRlb0ZyYW1lICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgp
KSB7Ci0gICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUN1cnJlbnREYXRhKQorICAgICAgICBpZiAobmV3UmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpCiAgICAgICAgICAgICBuZXdSZWFkeVN0YXRl
ID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YTsKICAgICAgICAgbV9o
YXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgPSB0cnVlOwogICAgICAgICBtX3BsYXllci0+Zmly
c3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4NWM4
NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDExNDlmYmRlZS4uZWNlMmEzMWQ5ODI0MjViZjU1ZDI3
OTZjMmNhOTRmMzFjN2QwMzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTE4LDYgKzEx
OCw4IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qg
ZmluYWw7CiAKKyAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogcHJpdmF0
ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRh
Y2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGE0
YTZkYzI2YmViZmVjNWUyZTZhZmQyYjA4ZDA3NDViMTg1NDE2Yy4uNGFkNTg3MGEyYTFjMjU4MWI0
YmNiZGFjYTYwOThiZWZhMGU4ZDg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02Nyw3
ICs2Nyw2IEBACiAjaW1wb3J0ICJXZWJDb3JlQ0FMYXllckV4dHJhcy5oIgogI2ltcG9ydCAiV2Vi
Q29yZU5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiCi0jaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldEltYWdlR2VuZXJhdG9yLmg+CiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZBc3NldFRyYWNrLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYVNl
bGVjdGlvbkdyb3VwLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZXRhZGF0YUl0ZW0uaD4K
QEAgLTE5Niw2ICsxOTUsNyBAQCBAZW5kCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZQdWxsRGVsZWdh
dGUgOiBOU09iamVjdDxBVlBsYXllckl0ZW1PdXRwdXRQdWxsRGVsZWdhdGU+IHsKICAgICBCaW5h
cnlTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiB9CistICh2b2lkKXNldFBhcmVudDooV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50OwogLSAodm9pZClvdXRw
dXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXllckl0ZW1PdXRwdXQgKilzZW5kZXI7CiAtICh2
b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtT3V0cHV0ICopb3V0cHV0
OwogCkBAIC01NjEsNyArNTYxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpoYXNMYXllclJlbmRlcmVyKCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3ZpZGVvT3V0cHV0IHx8IG1faW1hZ2VHZW5lcmF0b3I7CisgICAgcmV0dXJuIG1fdmlk
ZW9PdXRwdXQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNTY5LDM1ICs1NjksOSBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRl
cmVyKCkKICAgICBjcmVhdGVWaWRlb091dHB1dCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKLXsKLSAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSKTsKLQotICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5l
cmF0b3IpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSBbUEFMOjpn
ZXRBVkFzc2V0SW1hZ2VHZW5lcmF0b3JDbGFzcygpIGFzc2V0SW1hZ2VHZW5lcmF0b3JXaXRoQXNz
ZXQ6bV9hdkFzc2V0LmdldCgpXTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFw
ZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJl
XTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJlZmVycmVkVHJhY2tU
cmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRU
aW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOwotICAgIFttX2ltYWdlR2VuZXJh
dG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJv
XTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
Q29udGV4dFZpZGVvUmVuZGVyZXIoKQogewogICAgIGRlc3Ryb3lWaWRlb091dHB1dCgpOwotICAg
IGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgaWYgKCFtX2lt
YWdlR2VuZXJhdG9yKQotICAgICAgICByZXR1cm47Ci0KLSAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSKTsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSAwOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQpAQCAtMTgxMyw4ICsx
Nzg3LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnQKICAgICAvLyB0aGUgdmlkZW8gb3V0cHV0
LCB0b28uCiAgICAgaWYgKHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSB8fCAobV92aWRl
b091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1ZmZlcikpCiAgICAgICAgIHBhaW50V2l0aFZpZGVvT3V0
cHV0KGNvbnRleHQsIHJlY3QpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnRXaXRoSW1hZ2VHZW5l
cmF0b3IoY29udGV4dCwgcmVjdCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwpAQCAtMTgzOCwzOCArMTgxMCw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGCiAgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCi17Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoY3Vy
cmVudFRpbWUoKSwgcmVjdCk7Ci0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC50cmFu
c2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnRl
eHQuc2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKLSAgICAg
ICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKSk7Ci0gICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWlu
dFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7Ci0gICAgfQotfQotCi1SZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VG
b3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICBp
ZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7Ci0g
ICAgQVNTRVJUKG1faW1hZ2VHZW5lcmF0b3IpOwotCi0gICAgTW9ub3RvbmljVGltZSBzdGFydCA9
IE1vbm90b25pY1RpbWU6Om5vdygpOwotCi0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0
TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFn
ZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6
bmlsIGVycm9yOm5pbF0pOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0
Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNv
bG9yU3BhY2VSZWYoKSkpOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5n
IGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7
Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKQogewogICAgIHN1cHBvcnRlZFR5cGVzID0g
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRlZFR5cGVzKCk7CkBAIC0y
NDQwLDExICsyMzgwLDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQogICAgIH0KIAogICAgIG1fdmlkZW9PdXRwdXREZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZGUHVsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W21fdmlkZW9PdXRwdXREZWxlZ2F0ZSBzZXRQYXJlbnQ6KnRoaXNdOwogICAgIFttX3ZpZGVvT3V0
cHV0IHNldERlbGVnYXRlOm1fdmlkZW9PdXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxQ
dWxsRGVsZWdhdGVRdWV1ZSgpXTsKIAorICAgIGlmIChbbV92aWRlb091dHB1dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZUFz
U29vbkFzUG9zc2libGUpXSkKKyAgICAgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNh
dGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQb3NzaWJsZV07CisgICAgZWxzZSB7CisgICAg
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjYW5ub3QgYXNrIGZvciBBU0FQIG1lZGlhIGRh
dGEgbm90aWZpY2F0aW9uOyBmYWxsaW5nIGJhY2sgdG8gcmVxdWVzdGluZyB3aXRoIGFkdmFuY2Ug
aW50ZXJ2YWwiKTsKKyAgICAgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNhdGlvbk9m
TWVkaWFEYXRhQ2hhbmdlV2l0aEFkdmFuY2VJbnRlcnZhbDowXTsKKyAgICB9CisKICAgICBbbV9h
dlBsYXllckl0ZW0uZ2V0KCkgYWRkT3V0cHV0Om1fdmlkZW9PdXRwdXQuZ2V0KCldOwogfQogCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKQoreworICAgIHVwZGF0ZVN0YXRlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb091dHB1dCgpCiB7CiAgICAgaWYg
KCFtX3ZpZGVvT3V0cHV0KQpAQCAtMjUzOSwxMiArMjQ5Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250
ZXh0JiBjCiAKICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0IHsgRmxvYXRQb2ludDo6emVybygpLCBt
X2xhc3RJbWFnZS0+c2l6ZSgpIH07CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKm1fbGFz
dEltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwotCi0gICAg
Ly8gSWYgd2UgaGF2ZSBjcmVhdGVkIGFuIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpbiB0aGUgcGFz
dCBkdWUgdG8gbV92aWRlb091dHB1dCBub3QgaGF2aW5nIGFuIGF2YWlsYWJsZQotICAgIC8vIHZp
ZGVvIGZyYW1lLCBkZXN0cm95IGl0IG5vdyB0aGF0IGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCi0g
ICAgaWYgKG1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigp
OwotCiB9CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKQEAgLTM4OTksMTQg
KzM4NDYsMjUgQEAgLSAodm9pZClyZXNvdXJjZUxvYWRlcjooQVZBc3NldFJlc291cmNlTG9hZGVy
ICopcmVzb3VyY2VMb2FkZXIgZGlkQ2FuY2VsTG9hZGluZ1IKIAogQGVuZAogCi1AaW1wbGVtZW50
YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFdlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQz4gX3BhcmVudDsKK30KIAogQHN5bnRoZXNpemUgc2VtYXBob3JlID0gbV9z
ZW1hcGhvcmU7CiAKKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDJilwYXJlbnQKK3sKKyAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIo
cGFyZW50KTsKK30KKwogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXll
ckl0ZW1WaWRlb091dHB1dCAqKW91dHB1dAogewogICAgIFVOVVNFRF9QQVJBTShvdXRwdXQpOwog
ICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
cGFyZW50ID0gX3BhcmVudF0geworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFy
ZW50LT5vdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIC0gKHZvaWQp
b3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1WaWRlb091dHB1dCAqKW91dHB1
dAo=
</data>
<flag name="commit-queue"
          id="456981"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434498</attachid>
            <date>2021-07-28 23:18:37 -0700</date>
            <delta_ts>2021-07-28 23:35:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210728231836.patch</filename>
            <type>text/plain</type>
            <size>19249</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uNTJkODQzYjY4YzEyMTEzZDk1YzgxZjBmZTc5YTg4
YTg5Yzc3NTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbSBBVlBsYXllckl0ZW1WaWRl
b091dHB1dC4KKyAgICAgICAgSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEgZm9yIHRoZSBjdXJyZW50IHRpbWUgaXMgbm90IGF2
YWlsYWJsZSwKKyAgICAgICAgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBpcyBibG9ja2Vk
IGluIGEKKyAgICAgICAgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0IHJl
cXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2NrLgorCisgICAg
ICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRlID49IEhBVkVf
Q1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUgQVZQbGF5ZXJMYXllciBvcgorICAgICAgICB0
aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFpbGFibGUgZnJh
bWUuIFRoaXMgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRpbmcKKyAgICAgICAgdG8gcGFp
bnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBh
bHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yCisgICAgICAgIHBhaW50aW5nLCByZW1v
dmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzIGdlbmVyYXRvciBjYWxsLgorCisgICAg
ICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVkIHdoZW4gQVZQbGF5ZXJJdGVt
VmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwgcmVnaXN0ZXIKKyAgICAgICAgd2l0
aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90aWZpY2F0aW9uIGFzIHNvb24g
YXMgYW4gaW1hZ2UgaXMgYXZhaWxhYmxlLiBBbmQgaW4gdGhlIGV4aXN0aW5nCisgICAgICAgIGRl
bGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0aGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQgb2NjdXJzLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZsYWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBh
bmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRh
dGVTdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRN
ZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSBzZXRQYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTpdKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFn
ZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QpOiBEZWxldGVkLgor
CiAyMDIxLTA3LTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gUGxheWJhY2sgc3RhbGxzIG9uIGJpbGliaWxpLmNvbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggNDc4Njc0NjljZTMxOGRkNjM0NmMxOGU0ZTRkMjM1MTE4MGQ0NjBhYS4uOGM1ZTBhMzRl
ZTJkYzkzNDdhN2QwMTkzZjUxYjI4NzA0MWQwOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjEtMDctMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIxLTA3LTE0ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVy
IHIyNzk5MTIgKDIzOTY2MUBtYWluKTsgQWRvcHQgSEFWRShTWVNURU1fU1RBVFVTKSBtYWNyby4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJ
LmgKaW5kZXggZjYxZjdmNTc3NWUyNThmMjk5YWQ4MjA5YWNjNDEyMWNmNTZjYWFiZC4uYzZhNTBh
ZmJkNDU0MGYxYjk0YTI3MjAyOGU2MmI3OGRhNGQwNjU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTM2LDkgKzM2LDEw
IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldENhY2hlX1ByaXZhdGUuaD4KICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVk91dHB1dENvbnRleHRfUHJpdmF0ZS5oPgogI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWT3V0cHV0RGV2aWNlLmg+Ci0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5
ZXJfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbU91dHB1dF9Q
cml2YXRlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5ZXJJdGVtX1ByaXZhdGUuaD4K
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckxheWVyX1ByaXZhdGUuaD4KKyNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVlBsYXllcl9Qcml2YXRlLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQpAQCAtMTk1LDYgKzE5Niwx
MSBAQCBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VS
Q0UpCiAKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1PdXRwdXQuaD4KK0BpbnRl
cmZhY2UgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKEFWUGxheWVySXRlbVZpZGVvT3V0cHV0QVNB
UCkKKy0gKHZvaWQpcmVxdWVzdE5vdGlmaWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQ
b3NzaWJsZTsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckxheWVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGJiZDU2MGFk
NGNhMDAwOTFhYzE5YmQzZmVmOWFkMmZjYmVlMDAzMTYuLjI2MTg1NjBlZGQxN2JmMTEzNDRkYjVl
ODU1MDYyYzBhYzhlODIxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01NDMsMTEgKzU0MywxNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgfQog
ICAgIH0KIAorICAgIGlmIChuZXdSZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
OjpIYXZlQ3VycmVudERhdGEgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiAhaGFzQXZhaWxhYmxlVmlk
ZW9GcmFtZSgpKSB7CisgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZTo6SGF2ZU1ldGFkYXRhOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIh
aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpLCBsb3dlcmluZyByZWFkeVN0YXRlIHRvICIsIG5ld1Jl
YWR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChpc1JlYWR5Rm9yVmlkZW9TZXR1cCgpICYmIGN1
cnJlbnRSZW5kZXJpbmdNb2RlKCkgIT0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpKQogICAgICAg
ICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKICAgICBpZiAoIW1faGF2ZVJlcG9ydGVkRmlyc3RW
aWRlb0ZyYW1lICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgp
KSB7Ci0gICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUN1cnJlbnREYXRhKQorICAgICAgICBpZiAobmV3UmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpCiAgICAgICAgICAgICBuZXdSZWFkeVN0YXRl
ID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YTsKICAgICAgICAgbV9o
YXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgPSB0cnVlOwogICAgICAgICBtX3BsYXllci0+Zmly
c3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4NWM4
NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDExNDlmYmRlZS4uZWNlMmEzMWQ5ODI0MjViZjU1ZDI3
OTZjMmNhOTRmMzFjN2QwMzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTE4LDYgKzEx
OCw4IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qg
ZmluYWw7CiAKKyAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogcHJpdmF0
ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRh
Y2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGE0
YTZkYzI2YmViZmVjNWUyZTZhZmQyYjA4ZDA3NDViMTg1NDE2Yy4uNGFkNTg3MGEyYTFjMjU4MWI0
YmNiZGFjYTYwOThiZWZhMGU4ZDg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02Nyw3
ICs2Nyw2IEBACiAjaW1wb3J0ICJXZWJDb3JlQ0FMYXllckV4dHJhcy5oIgogI2ltcG9ydCAiV2Vi
Q29yZU5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiCi0jaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldEltYWdlR2VuZXJhdG9yLmg+CiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZBc3NldFRyYWNrLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYVNl
bGVjdGlvbkdyb3VwLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZXRhZGF0YUl0ZW0uaD4K
QEAgLTE5Niw2ICsxOTUsNyBAQCBAZW5kCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZQdWxsRGVsZWdh
dGUgOiBOU09iamVjdDxBVlBsYXllckl0ZW1PdXRwdXRQdWxsRGVsZWdhdGU+IHsKICAgICBCaW5h
cnlTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiB9CistICh2b2lkKXNldFBhcmVudDooV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50OwogLSAodm9pZClvdXRw
dXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXllckl0ZW1PdXRwdXQgKilzZW5kZXI7CiAtICh2
b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtT3V0cHV0ICopb3V0cHV0
OwogCkBAIC01NjEsNyArNTYxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpoYXNMYXllclJlbmRlcmVyKCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3ZpZGVvT3V0cHV0IHx8IG1faW1hZ2VHZW5lcmF0b3I7CisgICAgcmV0dXJuIG1fdmlk
ZW9PdXRwdXQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNTY5LDM1ICs1NjksOSBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRl
cmVyKCkKICAgICBjcmVhdGVWaWRlb091dHB1dCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKLXsKLSAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSKTsKLQotICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5l
cmF0b3IpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSBbUEFMOjpn
ZXRBVkFzc2V0SW1hZ2VHZW5lcmF0b3JDbGFzcygpIGFzc2V0SW1hZ2VHZW5lcmF0b3JXaXRoQXNz
ZXQ6bV9hdkFzc2V0LmdldCgpXTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFw
ZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJl
XTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJlZmVycmVkVHJhY2tU
cmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRU
aW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOwotICAgIFttX2ltYWdlR2VuZXJh
dG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJv
XTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
Q29udGV4dFZpZGVvUmVuZGVyZXIoKQogewogICAgIGRlc3Ryb3lWaWRlb091dHB1dCgpOwotICAg
IGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgaWYgKCFtX2lt
YWdlR2VuZXJhdG9yKQotICAgICAgICByZXR1cm47Ci0KLSAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSKTsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSAwOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQpAQCAtMTgxMyw4ICsx
Nzg3LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnQKICAgICAvLyB0aGUgdmlkZW8gb3V0cHV0
LCB0b28uCiAgICAgaWYgKHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSB8fCAobV92aWRl
b091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1ZmZlcikpCiAgICAgICAgIHBhaW50V2l0aFZpZGVvT3V0
cHV0KGNvbnRleHQsIHJlY3QpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnRXaXRoSW1hZ2VHZW5l
cmF0b3IoY29udGV4dCwgcmVjdCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwpAQCAtMTgzOCwzOCArMTgxMCw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGCiAgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCi17Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoY3Vy
cmVudFRpbWUoKSwgcmVjdCk7Ci0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC50cmFu
c2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnRl
eHQuc2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKLSAgICAg
ICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKSk7Ci0gICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWlu
dFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7Ci0gICAgfQotfQotCi1SZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VG
b3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICBp
ZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7Ci0g
ICAgQVNTRVJUKG1faW1hZ2VHZW5lcmF0b3IpOwotCi0gICAgTW9ub3RvbmljVGltZSBzdGFydCA9
IE1vbm90b25pY1RpbWU6Om5vdygpOwotCi0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0
TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFn
ZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6
bmlsIGVycm9yOm5pbF0pOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0
Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNv
bG9yU3BhY2VSZWYoKSkpOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5n
IGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7
Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKQogewogICAgIHN1cHBvcnRlZFR5cGVzID0g
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRlZFR5cGVzKCk7CkBAIC0y
NDQwLDExICsyMzgwLDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQogICAgIH0KIAogICAgIG1fdmlkZW9PdXRwdXREZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZGUHVsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W21fdmlkZW9PdXRwdXREZWxlZ2F0ZSBzZXRQYXJlbnQ6KnRoaXNdOwogICAgIFttX3ZpZGVvT3V0
cHV0IHNldERlbGVnYXRlOm1fdmlkZW9PdXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxQ
dWxsRGVsZWdhdGVRdWV1ZSgpXTsKIAorICAgIGlmIChbbV92aWRlb091dHB1dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZUFz
U29vbkFzUG9zc2libGUpXSkKKyAgICAgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNh
dGlvbk9mTWVkaWFEYXRhQ2hhbmdlQXNTb29uQXNQb3NzaWJsZV07CisgICAgZWxzZSB7CisgICAg
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjYW5ub3QgYXNrIGZvciBBU0FQIG1lZGlhIGRh
dGEgbm90aWZpY2F0aW9uOyBmYWxsaW5nIGJhY2sgdG8gcmVxdWVzdGluZyB3aXRoIGFkdmFuY2Ug
aW50ZXJ2YWwiKTsKKyAgICAgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNhdGlvbk9m
TWVkaWFEYXRhQ2hhbmdlV2l0aEFkdmFuY2VJbnRlcnZhbDowXTsKKyAgICB9CisKICAgICBbbV9h
dlBsYXllckl0ZW0uZ2V0KCkgYWRkT3V0cHV0Om1fdmlkZW9PdXRwdXQuZ2V0KCldOwogfQogCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKQoreworICAgIHVwZGF0ZVN0YXRlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb091dHB1dCgpCiB7CiAgICAgaWYg
KCFtX3ZpZGVvT3V0cHV0KQpAQCAtMjUzOSwxMiArMjQ5Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250
ZXh0JiBjCiAKICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0IHsgRmxvYXRQb2ludDo6emVybygpLCBt
X2xhc3RJbWFnZS0+c2l6ZSgpIH07CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKm1fbGFz
dEltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwotCi0gICAg
Ly8gSWYgd2UgaGF2ZSBjcmVhdGVkIGFuIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpbiB0aGUgcGFz
dCBkdWUgdG8gbV92aWRlb091dHB1dCBub3QgaGF2aW5nIGFuIGF2YWlsYWJsZQotICAgIC8vIHZp
ZGVvIGZyYW1lLCBkZXN0cm95IGl0IG5vdyB0aGF0IGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCi0g
ICAgaWYgKG1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigp
OwotCiB9CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKQEAgLTM4OTksMTQg
KzM4NDYsMjUgQEAgLSAodm9pZClyZXNvdXJjZUxvYWRlcjooQVZBc3NldFJlc291cmNlTG9hZGVy
ICopcmVzb3VyY2VMb2FkZXIgZGlkQ2FuY2VsTG9hZGluZ1IKIAogQGVuZAogCi1AaW1wbGVtZW50
YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFdlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQz4gX3BhcmVudDsKK30KIAogQHN5bnRoZXNpemUgc2VtYXBob3JlID0gbV9z
ZW1hcGhvcmU7CiAKKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDJilwYXJlbnQKK3sKKyAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIo
cGFyZW50KTsKK30KKwogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOihBVlBsYXll
ckl0ZW1WaWRlb091dHB1dCAqKW91dHB1dAogewogICAgIFVOVVNFRF9QQVJBTShvdXRwdXQpOwog
ICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
cGFyZW50ID0gX3BhcmVudF0geworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFy
ZW50LT5vdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIC0gKHZvaWQp
b3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1WaWRlb091dHB1dCAqKW91dHB1
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNDQwZGZiNWIwYTkxMmM4Y2M0Njg5
MWE1MDk3ZTliYmRkNTdjZmQzMC4uOGE5ZjE2MGIyOWFlNGUyZmUzZTBmYTg5NWVjZjMyNjBjMzA2
M2ZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMDctMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0Nv
Y29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJhdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgMngyLWdyZWVuLm1wNCBm
aWxlIGZhaWxzIHRvIGRlY29kZSBhcyBpdHMgbmF0dXJhbCBzaXplIGlzIHRvbyBzbWFsbCBmb3Ig
dGhlIHN5c3RlbSBkZWNvZGVyIHRvIGhhbmRsZS4gUmVwbGFjZSB3aXRoCisgICAgICAgIGEgbWVk
aWEgZmlsZSBvZiBtb3JlIHJlYXNvbmFibGUgc2l6ZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1l
bWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhLzE2eDE2LWdyZWVuLm1wNDogQWRkZWQuCisKIDIwMjEtMDctMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBMb2NhdGlvbi5ocmVmIHNl
dHRlciB1c2VzIHdyb25nIHdpbmRvdyB0byByZXNvbHZlIHJlbGF0aXZlIFVSTHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5k
ZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1h
bmQtaW1hZ2VzL3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9h
dHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJh
dGlvLmh0bWwKaW5kZXggNTUxNDNlYWZmNWNkZDQ5ODcxYzBlYWJhYjQzNWIzOWY3YTQyZWJjZC4u
NTNjZWI4MmU1Y2JkMDQ5YTlmYzFmMTJlNzJkMDhhNmVjNzViMjkzNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9y
ZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFn
ZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRy
aWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlv
Lmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgZnVuY3Rpb24gdGVzdF9jb21wdXRlZF9zdHlsZSh3aWR0
aCwgaGVpZ2h0LCBleHBlY3RlZCkgewogCiB0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgIHZhciB2aWRl
byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZWQiKTsKLSAgdmlkZW8uc3JjID0g
Z2V0VmlkZW9VUkkoJy9tZWRpYS8yeDItZ3JlZW4nKTsKKyAgdmlkZW8uc3JjID0gZ2V0VmlkZW9V
UkkoJy9tZWRpYS8xNngxNi1ncmVlbicpOwogICBhc3NlcnRfcmF0aW8odmlkZW8sIDIuNSk7CiB9
LCAiY29udGFpbjpzaXplIGFzcGVjdCByYXRpbyIpOwogCkBAIC0zNyw3ICszNyw3IEBAIHQuc3Rl
cChmdW5jdGlvbigpIHsKICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIp
OwogICB2aWRlby5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjI1MCIpOwogICB2aWRlby5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsICIxMDAiKTsKLSAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRp
YS8yeDItZ3JlZW4nKTsKKyAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS8xNngxNi1n
cmVlbicpOwogICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKICAgLy8gVmlkZW9z
IGRlZmF1bHQgdG8gYSBzaXplIG9mIDMwMHgxNTBweCBhbmQgY2FsY3VsYXRlIHRoZWlyIGFzcGVj
dCByYXRpbwogICAvLyBiYXNlZCBvbiB0aGF0IGJlZm9yZSB0aGUgdmlkZW8gaXMgbG9hZGVkLiBT
byB0aGlzIHNob3VsZCBiZSAyLCBpZ25vcmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sCmluZGV4IDliNWQ2OWIzMWEw
MzNlMjI2ZmZlNGFkYTFlMTU0MjkzZjMzZWM5YTEuLjE5MDM2ZWFiOTZkMzU0OWE1MmQzM2ZmODYx
MjQ0OTk3ZTkwM2NmMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAKIAogICAgICAg
ICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCJzZWVraW5nIiwgc3RhcnRUZXN0LCBmYWxzZSk7CiAg
ICAgICAgIG1lZGlhLmxvb3AgPSB0cnVlOwotICAgICAgICBtZWRpYS5zcmMgPSBnZXRWaWRlb1VS
SSgiL21lZGlhLzJ4Mi1ncmVlbiIpICsgIj8iICsgbmV3IERhdGUoKSArIE1hdGgucmFuZG9tKCk7
CisgICAgICAgIG1lZGlhLnNyYyA9IGdldFZpZGVvVVJJKCIvbWVkaWEvMTZ4MTYtZ3JlZW4iKSAr
ICI/IiArIG5ldyBEYXRlKCkgKyBNYXRoLnJhbmRvbSgpOwogICAgICAgICBtZWRpYS5wbGF5KCk7
CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEvMTZ4MTYtZ3JlZW4ubXA0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8xNngxNi1ncmVlbi5t
cDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzQxN2M4ZTQ4ODRiODMwOWI1ODY3ZDExMWQ5NGMzODQyMjY2NWU1NgpH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI5MQp6Y21lSEtPPXUpVjZ0Mm1pNT9zaDM7LVYyc1Uy
KHo4cTxiPlNDYyVhKkYmSmJRcU95eUsrU1lXfVdTWiV9Ylg2dVoKeklSJD99Wi1Oam4wVG8xOCoh
dnotJFJVV30jb1JXcTdaTG5IKDFZRnJqXkZFXnpsflc1QkNMcHlSS05HV19meiQlCnpVaUVZc1c0
eGw5djhTU2R1Pm5STHFiVFoqOE4/LSVGP01leWsmPn17dF83fnB0KXRhX0huXylmQUgle0tEe1Y3
Mgp6Ym1gKmQ8Pnx1d2R8fkZ3c3A7PjtvSTNnRzlafmEjQmczdU0/eWNuP0ttWUQ8PDtLcUJPQDg+
OyYlWlFedm44SkEKelBMeFApbWdYUj82YVk8S1VSezFCVSpaPzlGMlV3WDJacDY2WnUrdktkQ0BT
WV5GX20pMXo2UU9VWU1ITit9dGVHCnpKeSVBKTJuJGlOSGJyPzBSVVA+N2lESzxWcDwzWE1DPTE2
amNfSiY7RzxSaiRrRFF1aUUqSnwyN29xVCpOP0p4Xgp6ZGNrT3o8fT9xYVJoMTJ7SHAtQUxAS2Br
d2lsPzJwbVJUP21nYTs0MmhJRFBwWGQ9UStNN1NtYEVYfURWUTZPeEQKem5wYEsrX2ROd150fSo5
MjhpS1BQU08lNkwrXnJ+LVI/KGFeTzxvYTcrcCgmN0Y/blBPKT8rKVdSRnU/S3pRfWJvCnpLP0Vp
OHFvXmpUUTB5TTJlOXlzSkkpSzUkQiVRPFkwLTxSZ1VaYGNfM3BmRVVgeH1YOStEO1YyTFBLfTNN
TEgyKQp6aCFrKjQxbz4xRjVsRHMyRCUpYHJ2Z2NZdyRpZnZkUlorSWZvPWBOMm0mbWxQUDNmJndi
czRyT21aN35DI2pze3oKempMQDJGQkRZblhHMXtVWGNwKzQtOTJyVnlMdDc8LW1ZRTNKKG5QOCUh
Vnx+dG1QX2A7djdEc0JnRUlEJiU3UzdRCnpyd2F5T3IoIUlsRmJnckojMz5nSVlqeiVoKGxXTTYr
PjNFWVhiN0FrYSoxYEVLYjxEUzRQKWMtP0tqenp0PjE1Ywp6fExmIz8/e0QzQlNBWTcmTEY/JUd7
YTQ7TmJ7OXxJYGhBfU5sRkxYMWVlezFwZUZ4Sk98OHBuUXQ/Y2QhfDZJJTYKei04I0NuR2Q0VUxM
e1N8dDRMXyg/VUdQMntgfmtgPyVRNT12KFFPTGdXQk92eF5DVzJ5S2NaKndXfns7WnZhWTNiCnow
XyMjSStpbi1aM0BPO0xiUFVKeiNTV2hGYkpFb2M7KUx7LVprczZMYiRvKDZtI3NQWFJeV085NyFU
YXp3T0BhbAp6dT9HKlg/NUMwV3NfUTUxOTg1KFVWTWl3WjAoNXNwZ3N2fmlDdWlXNVU0YnlCZzQ+
ZHdiMkVJeCNjdSl5ZkBuZWEKelo2clEjJWZCZ0lfOTRIZndDV3JOYEs7cFdpV1cqbGRQVzBtajA5
UkxYaV9TZDNUQWBiK3VJTXBaM3o1Sz9TNnZUCnooS3xGb2ZhQ19DYTs0TUZBcnRBdCpweks+PGlf
U09ie19MUDs2IUFuSVhrMjZwWCF0RithamtuamV2aVJhZDUmbwp6dEYjbGZ7VjBjbG00MWZ3UHk5
dFFrUlE/Y2pQKlR4eU80cCReaEg4eGNoVmhWY1dRPCNaeUtCWDtMZ29aTTR8ejkKelFadnhrOGNv
JXF0TXY4Tyo5XzBMbl87fTNIQURZMFB0ZyMkKFJNPzhhO3piQz0jI3JXWEBBWlA4YmpHRDVOUXpv
CnoqKDFZeSYkRiEtNmEhaDhheE5RZmVad0FEMUhYUnc+Sz9qbGtQWHF9JWNvWCRVZCp3UD5RQ1Eo
XzI/ZV8kNn0jawp6YUxQe3VOOER8ekhrT3s/THw7Mn5kXj4hKypGcG5taGNwa2NabVluTFR2PlU7
KWRLdmJLJkc2cU5CWncyanhQfiQKbE94TEdOY2B2KkNrNitVZl8xP3F5ci1ZS0U4ODMtP1cjJlIq
WDB+NyYjdmdQK0VndHs/CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434499</attachid>
            <date>2021-07-28 23:37:59 -0700</date>
            <delta_ts>2021-07-29 21:59:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210728233759.patch</filename>
            <type>text/plain</type>
            <size>17142</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThkYTYzMmRkZmQ1Yzk3
NTI0NTExZWNmYzM0ZmI1ZTlkOTM4ZDA5Yy4uNTJkODQzYjY4YzEyMTEzZDk1YzgxZjBmZTc5YTg4
YTg5Yzc3NTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbSBBVlBsYXllckl0ZW1WaWRl
b091dHB1dC4KKyAgICAgICAgSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEgZm9yIHRoZSBjdXJyZW50IHRpbWUgaXMgbm90IGF2
YWlsYWJsZSwKKyAgICAgICAgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBpcyBibG9ja2Vk
IGluIGEKKyAgICAgICAgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0IHJl
cXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2NrLgorCisgICAg
ICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRlID49IEhBVkVf
Q1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUgQVZQbGF5ZXJMYXllciBvcgorICAgICAgICB0
aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFpbGFibGUgZnJh
bWUuIFRoaXMgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRpbmcKKyAgICAgICAgdG8gcGFp
bnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBh
bHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yCisgICAgICAgIHBhaW50aW5nLCByZW1v
dmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzIGdlbmVyYXRvciBjYWxsLgorCisgICAg
ICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVkIHdoZW4gQVZQbGF5ZXJJdGVt
VmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwgcmVnaXN0ZXIKKyAgICAgICAgd2l0
aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90aWZpY2F0aW9uIGFzIHNvb24g
YXMgYW4gaW1hZ2UgaXMgYXZhaWxhYmxlLiBBbmQgaW4gdGhlIGV4aXN0aW5nCisgICAgICAgIGRl
bGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0aGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQgb2NjdXJzLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZsYWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBh
bmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRh
dGVTdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRN
ZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSBzZXRQYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTpdKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFn
ZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QpOiBEZWxldGVkLgor
CiAyMDIxLTA3LTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gUGxheWJhY2sgc3RhbGxzIG9uIGJpbGliaWxpLmNvbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiYmQ1
NjBhZDRjYTAwMDkxYWMxOWJkM2ZlZjlhZDJmY2JlZTAwMzE2Li4yNjE4NTYwZWRkMTdiZjExMzQ0
ZGI1ZTg1NTA2MmMwYWM4ZTgyMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNTQzLDExICs1NDMsMTYgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAgICAg
IH0KICAgICB9CiAKKyAgICBpZiAobmV3UmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZTo6SGF2ZUN1cnJlbnREYXRhICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgIWhhc0F2YWlsYWJs
ZVZpZGVvRnJhbWUoKSkgeworICAgICAgICBuZXdSZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAiIWhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSwgbG93ZXJpbmcgcmVhZHlTdGF0ZSB0byAiLCBu
ZXdSZWFkeVN0YXRlKTsKKyAgICB9CisKICAgICBpZiAoaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAm
JiBjdXJyZW50UmVuZGVyaW5nTW9kZSgpICE9IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSkKICAg
ICAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogCiAgICAgaWYgKCFtX2hhdmVSZXBvcnRlZEZp
cnN0VmlkZW9GcmFtZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhhc0F2YWlsYWJsZVZpZGVvRnJh
bWUoKSkgewotICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVDdXJyZW50RGF0YSkKKyAgICAgICAgaWYgKG5ld1JlYWR5U3RhdGUgPCBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKQogICAgICAgICAgICAgbmV3UmVhZHlT
dGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGE7CiAgICAgICAg
IG1faGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgbV9wbGF5ZXIt
PmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZh
ODVjODQ5ZGVkMTkzMmQ1ZTZmODU2YzE4NTVhYjAxMTQ5ZmJkZWUuLmVjZTJhMzFkOTgyNDI1YmY1
NWQyNzk2YzJjYTk0ZjMxYzdkMDMzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTExOCw2
ICsxMTgsOCBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNv
bnN0IGZpbmFsOwogCisgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGNkbUluc3RhbmNl
QXR0YWNoZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IDRhNGE2ZGMyNmJlYmZlYzVlMmU2YWZkMmIwOGQwNzQ1YjE4NTQxNmMuLjU2N2Y4MGI1YTU3Njll
OGNjMzc5NTdjNTBkNWUzY2U5MWY5MTZmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
NjcsNyArNjcsNiBAQAogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKICNpbXBvcnQg
IldlYkNvcmVOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIgot
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRJbWFnZUdlbmVyYXRvci5oPgogI2ltcG9ydCA8
QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVk
aWFTZWxlY3Rpb25Hcm91cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWV0YWRhdGFJdGVt
Lmg+CkBAIC0xOTYsNiArMTk1LDcgQEAgQGVuZAogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAg
QmluYXJ5U2VtYXBob3JlIG1fc2VtYXBob3JlOwogfQorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudDsKIC0gKHZvaWQp
b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJdGVtT3V0cHV0ICopc2VuZGVyOwog
LSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbU91dHB1dCAqKW91
dHB1dDsKIApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6aGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV92aWRlb091dHB1dCB8fCBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiBt
X3ZpZGVvT3V0cHV0OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTU2OSwzNSArNTY5LDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9S
ZW5kZXJlcigpCiAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdl
R2VuZXJhdG9yKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gW1BB
TDo6Z2V0QVZBc3NldEltYWdlR2VuZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJhdG9yV2l0
aEFzc2V0Om1fYXZBc3NldC5nZXQoKV07Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVy
dHVyZV07Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRy
YWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVz
dGVkVGltZVRvbGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdl
bmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1l
WmVyb107Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVz
dHJveUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIHsKICAgICBkZXN0cm95VmlkZW9PdXRwdXQoKTsK
LSAgICBkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKQotewotICAgIGlmICgh
bV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gMDsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKQEAgLTE4MTMs
OCArMTc4Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgLy8gdGhlIHZpZGVvIG91
dHB1dCwgdG9vLgogICAgIGlmICh2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkgfHwgKG1f
dmlkZW9PdXRwdXQgJiYgbV9sYXN0UGl4ZWxCdWZmZXIpKQogICAgICAgICBwYWludFdpdGhWaWRl
b091dHB1dChjb250ZXh0LCByZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHBhaW50V2l0aEltYWdl
R2VuZXJhdG9yKGNvbnRleHQsIHJlY3QpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKQEAgLTE4MzgsMzggKzE4MTAsNiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNv
bnRleHQsIHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gY3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KGN1cnJlbnRUaW1lKCksIHJlY3QpOwotICAgIGlmIChpbWFnZSkgewotICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAgIGNvbnRleHQu
dHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBj
b250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNl
dEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7Ci0g
ICAgICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkpOwotICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwg
cGFpbnRSZWN0LmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwotICAgIH0KLX0KLQotUmV0YWluUHRy
PENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUlt
YWdlRm9yVGltZUluUmVjdChmbG9hdCB0aW1lLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0g
ICAgaWYgKCFtX2ltYWdlR2VuZXJhdG9yKQotICAgICAgICBjcmVhdGVJbWFnZUdlbmVyYXRvcigp
OwotICAgIEFTU0VSVChtX2ltYWdlR2VuZXJhdG9yKTsKLQotICAgIE1vbm90b25pY1RpbWUgc3Rh
cnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgp
IHNldE1heGltdW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNH
SW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxU
aW1lOm5pbCBlcnJvcjpuaWxdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBh
ZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNS
R0JDb2xvclNwYWNlUmVmKCkpKTsKLQotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVh
dGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRz
KCkpOwotCi0gICAgcmV0dXJuIGltYWdlOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcykKIHsKICAgICBzdXBwb3J0ZWRUeXBl
cyA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0ZWRUeXBlcygpOwpA
QCAtMjQ0MCwxMSArMjM4MCwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KCkKICAgICB9CiAKICAgICBtX3ZpZGVvT3V0cHV0RGVs
ZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFttX3ZpZGVvT3V0cHV0RGVsZWdhdGUgc2V0UGFyZW50Oip0aGlzXTsKICAgICBbbV92aWRl
b091dHB1dCBzZXREZWxlZ2F0ZTptX3ZpZGVvT3V0cHV0RGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xv
YmFsUHVsbERlbGVnYXRlUXVldWUoKV07CisgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlm
aWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlV2l0aEFkdmFuY2VJbnRlcnZhbDowXTsKIAogICAgIFtt
X2F2UGxheWVySXRlbS5nZXQoKSBhZGRPdXRwdXQ6bV92aWRlb091dHB1dC5nZXQoKV07CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSgpCit7CisgICAgdXBkYXRlU3RhdGVzKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIHsKICAgICBp
ZiAoIW1fdmlkZW9PdXRwdXQpCkBAIC0yNTM5LDEyICsyNDg2LDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0Nv
bnRleHQmIGMKIAogICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgeyBGbG9hdFBvaW50Ojp6ZXJvKCks
IG1fbGFzdEltYWdlLT5zaXplKCkgfTsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbV9s
YXN0SW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7Ci0KLSAg
ICAvLyBJZiB3ZSBoYXZlIGNyZWF0ZWQgYW4gQVZBc3NldEltYWdlR2VuZXJhdG9yIGluIHRoZSBw
YXN0IGR1ZSB0byBtX3ZpZGVvT3V0cHV0IG5vdCBoYXZpbmcgYW4gYXZhaWxhYmxlCi0gICAgLy8g
dmlkZW8gZnJhbWUsIGRlc3Ryb3kgaXQgbm93IHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4K
LSAgICBpZiAobV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAgZGVzdHJveUltYWdlR2VuZXJhdG9y
KCk7Ci0KIH0KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQpAQCAtMzg5OSwx
NCArMzg0MCwyNSBAQCAtICh2b2lkKXJlc291cmNlTG9hZGVyOihBVkFzc2V0UmVzb3VyY2VMb2Fk
ZXIgKilyZXNvdXJjZUxvYWRlciBkaWRDYW5jZWxMb2FkaW5nUgogCiBAZW5kCiAKLUBpbXBsZW1l
bnRhdGlvbiBXZWJDb3JlQVZGUHVsbERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFW
RlB1bGxEZWxlZ2F0ZSB7CisgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDPiBfcGFyZW50OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBt
X3NlbWFwaG9yZTsKIAorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0
cihwYXJlbnQpOworfQorCiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxh
eWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7
CiAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtwYXJlbnQgPSBfcGFyZW50XSB7CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBw
YXJlbnQtPm91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9p
ZClvdXRwdXRTZXF1ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0
cHV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0NDBkZmI1YjBhOTEyYzhjYzQ2
ODkxYTUwOTdlOWJiZGQ1N2NmZDMwLi44YTlmMTYwYjI5YWU0ZTJmZTNlMGZhODk1ZWNmMzI2MGMz
MDYzZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0wNy0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIFJlbW92ZSBzdXBwb3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSAyeDItZ3JlZW4ubXA0
IGZpbGUgZmFpbHMgdG8gZGVjb2RlIGFzIGl0cyBuYXR1cmFsIHNpemUgaXMgdG9vIHNtYWxsIGZv
ciB0aGUgc3lzdGVtIGRlY29kZXIgdG8gaGFuZGxlLiBSZXBsYWNlIHdpdGgKKyAgICAgICAgYSBt
ZWRpYSBmaWxlIG9mIG1vcmUgcmVhc29uYWJsZSBzaXplLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9y
LWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy92aWRlby1hc3BlY3QtcmF0aW8uaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWEvMTZ4MTYtZ3JlZW4ubXA0OiBBZGRlZC4KKwogMjAyMS0wNy0yNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExvY2F0aW9uLmhyZWYg
c2V0dGVyIHVzZXMgd3Jvbmcgd2luZG93IHRvIHJlc29sdmUgcmVsYXRpdmUgVVJMcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50
LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRz
L2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy92aWRlby1hc3BlY3Qt
cmF0aW8uaHRtbAppbmRleCA1NTE0M2VhZmY1Y2RkNDk4NzFjMGVhYmFiNDM1YjM5ZjdhNDJlYmNk
Li41M2NlYjgyZTVjYmQwNDlhOWZjMWYxMmU3MmQwOGE2ZWM3NWIyOTM2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5n
L3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWlt
YWdlcy92aWRlby1hc3BlY3QtcmF0aW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0
dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy92aWRlby1hc3BlY3QtcmF0
aW8uaHRtbApAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiB0ZXN0X2NvbXB1dGVkX3N0eWxlKHdp
ZHRoLCBoZWlnaHQsIGV4cGVjdGVkKSB7CiAKIHQuc3RlcChmdW5jdGlvbigpIHsKICAgdmFyIHZp
ZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lZCIpOwotICB2aWRlby5zcmMg
PSBnZXRWaWRlb1VSSSgnL21lZGlhLzJ4Mi1ncmVlbicpOworICB2aWRlby5zcmMgPSBnZXRWaWRl
b1VSSSgnL21lZGlhLzE2eDE2LWdyZWVuJyk7CiAgIGFzc2VydF9yYXRpbyh2aWRlbywgMi41KTsK
IH0sICJjb250YWluOnNpemUgYXNwZWN0IHJhdGlvIik7CiAKQEAgLTM3LDcgKzM3LDcgQEAgdC5z
dGVwKGZ1bmN0aW9uKCkgewogICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVv
Iik7CiAgIHZpZGVvLnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMjUwIik7CiAgIHZpZGVvLnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOwotICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21l
ZGlhLzJ4Mi1ncmVlbicpOworICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhLzE2eDE2
LWdyZWVuJyk7CiAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwogICAvLyBWaWRl
b3MgZGVmYXVsdCB0byBhIHNpemUgb2YgMzAweDE1MHB4IGFuZCBjYWxjdWxhdGUgdGhlaXIgYXNw
ZWN0IHJhdGlvCiAgIC8vIGJhc2VkIG9uIHRoYXQgYmVmb3JlIHRoZSB2aWRlbyBpcyBsb2FkZWQu
IFNvIHRoaXMgc2hvdWxkIGJlIDIsIGlnbm9yaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwKaW5kZXggOWI1ZDY5YjMx
YTAzM2UyMjZmZmU0YWRhMWUxNTQyOTNmMzNlYzlhMS4uMTkwMzZlYWI5NmQzNTQ5YTUyZDMzZmY4
NjEyNDQ5OTdlOTAzY2YyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbApAQCAtMzMsNyArMzMsNyBAQAogCiAgICAg
ICAgIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInNlZWtpbmciLCBzdGFydFRlc3QsIGZhbHNlKTsK
ICAgICAgICAgbWVkaWEubG9vcCA9IHRydWU7Ci0gICAgICAgIG1lZGlhLnNyYyA9IGdldFZpZGVv
VVJJKCIvbWVkaWEvMngyLWdyZWVuIikgKyAiPyIgKyBuZXcgRGF0ZSgpICsgTWF0aC5yYW5kb20o
KTsKKyAgICAgICAgbWVkaWEuc3JjID0gZ2V0VmlkZW9VUkkoIi9tZWRpYS8xNngxNi1ncmVlbiIp
ICsgIj8iICsgbmV3IERhdGUoKSArIE1hdGgucmFuZG9tKCk7CiAgICAgICAgIG1lZGlhLnBsYXko
KTsKICAgICA8L3NjcmlwdD4KICAgPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8xNngxNi1ncmVlbi5tcDQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLzE2eDE2LWdyZWVu
Lm1wNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNDE3YzhlNDg4NGI4MzA5YjU4NjdkMTExZDk0YzM4NDIyNjY1ZTU2
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjkxCnpjbWVIS089dSlWNnQybWk1P3NoMzstVjJz
VTIoejhxPGI+U0NjJWEqRiZKYlFxT3l5SytTWVd9V1NaJX1iWDZ1Wgp6SVIkP31aLU5qbjBUbzE4
KiF2ei0kUlVXfSNvUldxN1pMbkgoMVlGcmpeRkVeemx+VzVCQ0xweVJLTkdXX2Z6JCUKelVpRVlz
VzR4bDl2OFNTZHU+blJMcWJUWio4Tj8tJUY/TWV5ayY+fXt0Xzd+cHQpdGFfSG5fKWZBSCV7S0R7
VjcyCnpibWAqZDw+fHV3ZHx+RndzcDs+O29JM2dHOVp+YSNCZzN1TT95Y24/S21ZRDw8O0txQk9A
OD47JiVaUV52bjhKQQp6UEx4UCltZ1hSPzZhWTxLVVJ7MUJVKlo/OUYyVXdYMlpwNjZadSt2S2RD
QFNZXkZfbSkxejZRT1VZTUhOK310ZUcKekp5JUEpMm4kaU5IYnI/MFJVUD43aURLPFZwPDNYTUM9
MTZqY19KJjtHPFJqJGtEUXVpRSpKfDI3b3FUKk4/SnheCnpkY2tPejx9P3FhUmgxMntIcC1BTEBL
YGt3aWw/MnBtUlQ/bWdhOzQyaElEUHBYZD1RK003U21gRVh9RFZRNk94RAp6bnBgSytfZE53XnR9
KjkyOGlLUFBTTyU2TCtecn4tUj8oYV5PPG9hNytwKCY3Rj9uUE8pPyspV1JGdT9LelF9Ym8Keks/
RWk4cW9ealRRMHlNMmU5eXNKSSlLNSRCJVE8WTAtPFJnVVpgY18zcGZFVWB4fVg5K0Q7VjJMUEt9
M01MSDIpCnpoIWsqNDFvPjFGNWxEczJEJSlgcnZnY1l3JGlmdmRSWitJZm89YE4ybSZtbFBQM2Ym
d2JzNHJPbVo3fkMjanN7egp6akxAMkZCRFluWEcxe1VYY3ArNC05MnJWeUx0NzwtbVlFM0ooblA4
JSFWfH50bVBfYDt2N0RzQmdFSUQmJTdTN1EKenJ3YXlPcighSWxGYmdySiMzPmdJWWp6JWgobFdN
Nis+M0VZWGI3QWthKjFgRUtiPERTNFApYy0/S2p6enQ+MTVjCnp8TGYjPz97RDNCU0FZNyZMRj8l
R3thNDtOYns5fElgaEF9TmxGTFgxZWV7MXBlRnhKT3w4cG5RdD9jZCF8NkklNgp6LTgjQ25HZDRV
TEx7U3x0NExfKD9VR1Aye2B+a2A/JVE1PXYoUU9MZ1dCT3Z4XkNXMnlLY1oqd1d+eztadmFZM2IK
ejBfIyNJK2luLVozQE87TGJQVUp6I1NXaEZiSkVvYzspTHstWmtzNkxiJG8oNm0jc1BYUl5XTzk3
IVRhendPQGFsCnp1P0cqWD81QzBXc19RNTE5ODUoVVZNaXdaMCg1c3Bnc3Z+aUN1aVc1VTRieUJn
ND5kd2IyRUl4I2N1KXlmQG5lYQp6WjZyUSMlZkJnSV85NEhmd0NXck5gSztwV2lXVypsZFBXMG1q
MDlSTFhpX1NkM1RBYGIrdUlNcFozejVLP1M2dlQKeihLfEZvZmFDX0NhOzRNRkFydEF0KnB6Sz48
aV9TT2J7X0xQOzYhQW5JWGsyNnBYIXRGK2Fqa25qZXZpUmFkNSZvCnp0RiNsZntWMGNsbTQxZndQ
eTl0UWtSUT9jalAqVHh5TzRwJF5oSDh4Y2hWaFZjV1E8I1p5S0JYO0xnb1pNNHx6OQp6UVp2eGs4
Y28lcXRNdjhPKjlfMExuXzt9M0hBRFkwUHRnIyQoUk0/OGE7emJDPSMjcldYQEFaUDhiakdENU5R
em8KeiooMVl5JiRGIS02YSFoOGF4TlFmZVp3QUQxSFhSdz5LP2psa1BYcX0lY29YJFVkKndQPlFD
UShfMj9lXyQ2fSNrCnphTFB7dU44RHx6SGtPez9MfDsyfmRePiErKkZwbm1oY3BrY1ptWW5MVHY+
VTspZEt2YksmRzZxTkJadzJqeFB+JApsT3hMR05jYHYqQ2s2K1VmXzE/cXlyLVlLRTg4My0/VyMm
UipYMH43JiN2Z1ArRWd0ez8KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>
<flag name="commit-queue"
          id="457020"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434605</attachid>
            <date>2021-07-29 21:59:17 -0700</date>
            <delta_ts>2021-07-31 18:22:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210729215916.patch</filename>
            <type>text/plain</type>
            <size>17149</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVlNDQzNjU0NTljYmFh
ODRlMDIwMTliNTI3ZWE2MmM1ZGNlMDkwNi4uMTgyZDY1NmFjOGY1YWRmYTgwNjUzNTNhOGZkNDQy
MjZhYTkwN2M4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA3LTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbSBBVlBsYXllckl0ZW1WaWRl
b091dHB1dC4KKyAgICAgICAgSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEgZm9yIHRoZSBjdXJyZW50IHRpbWUgaXMgbm90IGF2
YWlsYWJsZSwKKyAgICAgICAgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBpcyBibG9ja2Vk
IGluIGEKKyAgICAgICAgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0IHJl
cXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2NrLgorCisgICAg
ICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRlID49IEhBVkVf
Q1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUgQVZQbGF5ZXJMYXllciBvcgorICAgICAgICB0
aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFpbGFibGUgZnJh
bWUuIFRoaXMgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRpbmcKKyAgICAgICAgdG8gcGFp
bnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQgd2Ugd2lsbCBh
bHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yCisgICAgICAgIHBhaW50aW5nLCByZW1v
dmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzIGdlbmVyYXRvciBjYWxsLgorCisgICAg
ICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVkIHdoZW4gQVZQbGF5ZXJJdGVt
VmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwgcmVnaXN0ZXIKKyAgICAgICAgd2l0
aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90aWZpY2F0aW9uIGFzIHNvb24g
YXMgYW4gaW1hZ2UgaXMgYXZhaWxhYmxlLiBBbmQgaW4gdGhlIGV4aXN0aW5nCisgICAgICAgIGRl
bGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0aGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQgb2NjdXJzLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZsYWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBh
bmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRh
dGVTdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRN
ZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSBzZXRQYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTpdKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFn
ZUdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QpOiBEZWxldGVkLgor
CiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0byBk
ZWNyZWFzZSBiaW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiYmQ1NjBhZDRjYTAwMDkxYWMxOWJkM2Zl
ZjlhZDJmY2JlZTAwMzE2Li4yNjE4NTYwZWRkMTdiZjExMzQ0ZGI1ZTg1NTA2MmMwYWM4ZTgyMTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcApAQCAtNTQzLDExICs1NDMsMTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAo
bmV3UmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRh
ICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgIWhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgeworICAg
ICAgICBuZXdSZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0
YTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIWhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoKSwgbG93ZXJpbmcgcmVhZHlTdGF0ZSB0byAiLCBuZXdSZWFkeVN0YXRlKTsKKyAgICB9
CisKICAgICBpZiAoaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAmJiBjdXJyZW50UmVuZGVyaW5nTW9k
ZSgpICE9IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSkKICAgICAgICAgc2V0VXBWaWRlb1JlbmRl
cmluZygpOwogCiAgICAgaWYgKCFtX2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZSAmJiBtX2Nh
Y2hlZEhhc1ZpZGVvICYmIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgewotICAgICAgICBpZiAo
bV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkK
KyAgICAgICAgaWYgKG5ld1JlYWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2
ZUN1cnJlbnREYXRhKQogICAgICAgICAgICAgbmV3UmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGE7CiAgICAgICAgIG1faGF2ZVJlcG9ydGVkRmlyc3RW
aWRlb0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZhODVjODQ5ZGVkMTkzMmQ1ZTZmODU2
YzE4NTVhYjAxMTQ5ZmJkZWUuLmVjZTJhMzFkOTgyNDI1YmY1NWQyNzk2YzJjYTk0ZjMxYzdkMDMz
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwdWJsaWM6CiAK
ICAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IGZpbmFsOwogCisgICAgdm9p
ZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2Um
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDRhNGE2ZGMyNmJlYmZlYzVlMmU2
YWZkMmIwOGQwNzQ1YjE4NTQxNmMuLjU2N2Y4MGI1YTU3NjllOGNjMzc5NTdjNTBkNWUzY2U5MWY5
MTZmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjcsNyArNjcsNiBAQAogI2ltcG9y
dCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVOU1VSTEV4dHJhcy5o
IgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWQXNzZXRJbWFnZUdlbmVyYXRvci5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRU
cmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rpb25Hcm91cC5oPgog
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWV0YWRhdGFJdGVtLmg+CkBAIC0xOTYsNiArMTk1LDcg
QEAgQGVuZAogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIDogTlNPYmplY3Q8QVZQ
bGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAgQmluYXJ5U2VtYXBob3JlIG1fc2Vt
YXBob3JlOwogfQorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudDsKIC0gKHZvaWQpb3V0cHV0TWVkaWFEYXRhV2lsbENo
YW5nZTooQVZQbGF5ZXJJdGVtT3V0cHV0ICopc2VuZGVyOwogLSAodm9pZClvdXRwdXRTZXF1ZW5j
ZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbU91dHB1dCAqKW91dHB1dDsKIApAQCAtNTYxLDcgKzU2
MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzTGF5ZXJS
ZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb091dHB1
dCB8fCBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiBtX3ZpZGVvT3V0cHV0OwogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRl
b1JlbmRlcmVyKCkKQEAgLTU2OSwzNSArNTY5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCiAgICAgY3JlYXRl
VmlkZW9PdXRwdXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklF
Uik7Ci0KLSAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdlR2VuZXJhdG9yKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gW1BBTDo6Z2V0QVZBc3NldEltYWdlR2Vu
ZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJhdG9yV2l0aEFzc2V0Om1fYXZBc3NldC5nZXQo
KV07Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3Nl
dEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07Ci0gICAgW21faW1hZ2VH
ZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107Ci0g
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9y
ZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1
ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107Ci19Ci0KIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1JlbmRl
cmVyKCkKIHsKICAgICBkZXN0cm95VmlkZW9PdXRwdXQoKTsKLSAgICBkZXN0cm95SW1hZ2VHZW5l
cmF0b3IoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpk
ZXN0cm95SW1hZ2VHZW5lcmF0b3IoKQotewotICAgIGlmICghbV9pbWFnZUdlbmVyYXRvcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBtX2lt
YWdlR2VuZXJhdG9yID0gMDsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKQEAgLTE4MTMsOCArMTc4Nyw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoR3JhcGhpY3NDb250CiAgICAgLy8gdGhlIHZpZGVvIG91dHB1dCwgdG9vLgogICAgIGlmICh2
aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkgfHwgKG1fdmlkZW9PdXRwdXQgJiYgbV9sYXN0
UGl4ZWxCdWZmZXIpKQogICAgICAgICBwYWludFdpdGhWaWRlb091dHB1dChjb250ZXh0LCByZWN0
KTsKLSAgICBlbHNlCi0gICAgICAgIHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKGNvbnRleHQsIHJl
Y3QpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHNldERlbGF5Q2FsbGJh
Y2tzKGZhbHNlKTsKQEAgLTE4MzgsMzggKzE4MTAsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOwogfQogCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aEltYWdlR2Vu
ZXJhdG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQot
ewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlID0gY3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KGN1cnJlbnRUaW1lKCksIHJlY3Qp
OwotICAgIGlmIChpbWFnZSkgewotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3QueCgpLCBy
ZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6
ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7Ci0gICAgICAgIEludFJlY3QgcGFpbnRS
ZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkp
OwotICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwg
Q0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKSwg
aW1hZ2UuZ2V0KCkpOwotICAgIH0KLX0KLQotUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdChmbG9h
dCB0aW1lLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAgaWYgKCFtX2ltYWdlR2VuZXJh
dG9yKQotICAgICAgICBjcmVhdGVJbWFnZUdlbmVyYXRvcigpOwotICAgIEFTU0VSVChtX2ltYWdl
R2VuZXJhdG9yKTsKLQotICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1TaXplOkNHU2l6
ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJbWFnZSA9IGFk
b3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6UEFMOjpDTVRp
bWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsK
LSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVD
b3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNSR0JDb2xvclNwYWNlUmVmKCkpKTsK
LQotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGluZyBpbWFnZSB0b29rICIsIChN
b25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkpOwotCi0gICAgcmV0dXJuIGlt
YWdlOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBz
dXBwb3J0ZWRUeXBlcykKIHsKICAgICBzdXBwb3J0ZWRUeXBlcyA9IEFWQXNzZXRNSU1FVHlwZUNh
Y2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0ZWRUeXBlcygpOwpAQCAtMjQ0MCwxMSArMjM4MCwxOCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvT3V0
cHV0KCkKICAgICB9CiAKICAgICBtX3ZpZGVvT3V0cHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFttX3ZpZGVvT3V0cHV0RGVs
ZWdhdGUgc2V0UGFyZW50Oip0aGlzXTsKICAgICBbbV92aWRlb091dHB1dCBzZXREZWxlZ2F0ZTpt
X3ZpZGVvT3V0cHV0RGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xvYmFsUHVsbERlbGVnYXRlUXVldWUo
KV07CisgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNhdGlvbk9mTWVkaWFEYXRhQ2hh
bmdlV2l0aEFkdmFuY2VJbnRlcnZhbDowXTsKIAogICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBh
ZGRPdXRwdXQ6bV92aWRlb091dHB1dC5nZXQoKV07CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpCit7CisgICAg
dXBkYXRlU3RhdGVzKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIHsKICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCkBA
IC0yNTM5LDEyICsyNDg2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogICAgIEZsb2F0
UmVjdCBpbWFnZVJlY3QgeyBGbG9hdFBvaW50Ojp6ZXJvKCksIG1fbGFzdEltYWdlLT5zaXplKCkg
fTsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbV9sYXN0SW1hZ2UsIGltYWdlUmVjdC5z
aXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIGNyZWF0
ZWQgYW4gQVZBc3NldEltYWdlR2VuZXJhdG9yIGluIHRoZSBwYXN0IGR1ZSB0byBtX3ZpZGVvT3V0
cHV0IG5vdCBoYXZpbmcgYW4gYXZhaWxhYmxlCi0gICAgLy8gdmlkZW8gZnJhbWUsIGRlc3Ryb3kg
aXQgbm93IHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KLSAgICBpZiAobV9pbWFnZUdlbmVy
YXRvcikKLSAgICAgICAgZGVzdHJveUltYWdlR2VuZXJhdG9yKCk7Ci0KIH0KIAogUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQpAQCAtMzg5OSwxNCArMzg0MCwyNSBAQCAtICh2b2lk
KXJlc291cmNlTG9hZGVyOihBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKilyZXNvdXJjZUxvYWRlciBk
aWRDYW5jZWxMb2FkaW5nUgogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVs
bERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGFy
ZW50OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIAorLSAodm9p
ZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMm
KXBhcmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworfQorCiAtICh2
b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICop
b3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1hcGhvcmUuc2ln
bmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwYXJlbnQgPSBfcGFyZW50XSB7
CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPm91dHB1dE1lZGlhRGF0
YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0Zs
dXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA0ZGExYmE1NTA4NDdhZWZiOGQwNGM1MDcwMTQ2N2IzYmM2YjQyMzNj
Li43NTY5Yjk1OGY3MzdkODZiMGE4MzBiYTk0NzNlM2IyYjIzZTVjNDI0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0yOCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0
IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICBUaGUgMngyLWdyZWVuLm1wNCBmaWxlIGZhaWxzIHRvIGRlY29kZSBh
cyBpdHMgbmF0dXJhbCBzaXplIGlzIHRvbyBzbWFsbCBmb3IgdGhlIHN5c3RlbSBkZWNvZGVyIHRv
IGhhbmRsZS4gUmVwbGFjZSB3aXRoCisgICAgICAgIGEgbWVkaWEgZmlsZSBvZiBtb3JlIHJlYXNv
bmFibGUgc2l6ZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmlu
Zy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1p
bWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9f
bG9vcF9iYXNlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLzE2eDE2
LWdyZWVuLm1wNDogQWRkZWQuCisKIDIwMjEtMDctMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IElEQlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQt
Y29udGVudC1hbmQtaW1hZ2VzL3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1l
bGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8t
YXNwZWN0LXJhdGlvLmh0bWwKaW5kZXggNTUxNDNlYWZmNWNkZDQ5ODcxYzBlYWJhYjQzNWIzOWY3
YTQyZWJjZC4uNTNjZWI4MmU1Y2JkMDQ5YTlmYzFmMTJlNzJkMDhhNmVjNzViMjkzNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50
LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNw
ZWN0LXJhdGlvLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgZnVuY3Rpb24gdGVzdF9jb21wdXRlZF9z
dHlsZSh3aWR0aCwgaGVpZ2h0LCBleHBlY3RlZCkgewogCiB0LnN0ZXAoZnVuY3Rpb24oKSB7CiAg
IHZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZWQiKTsKLSAgdmlk
ZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS8yeDItZ3JlZW4nKTsKKyAgdmlkZW8uc3JjID0g
Z2V0VmlkZW9VUkkoJy9tZWRpYS8xNngxNi1ncmVlbicpOwogICBhc3NlcnRfcmF0aW8odmlkZW8s
IDIuNSk7CiB9LCAiY29udGFpbjpzaXplIGFzcGVjdCByYXRpbyIpOwogCkBAIC0zNyw3ICszNyw3
IEBAIHQuc3RlcChmdW5jdGlvbigpIHsKICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ2aWRlbyIpOwogICB2aWRlby5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjI1MCIpOwogICB2aWRl
by5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKLSAgdmlkZW8uc3JjID0gZ2V0VmlkZW9V
UkkoJy9tZWRpYS8yeDItZ3JlZW4nKTsKKyAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRp
YS8xNngxNi1ncmVlbicpOwogICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKICAg
Ly8gVmlkZW9zIGRlZmF1bHQgdG8gYSBzaXplIG9mIDMwMHgxNTBweCBhbmQgY2FsY3VsYXRlIHRo
ZWlyIGFzcGVjdCByYXRpbwogICAvLyBiYXNlZCBvbiB0aGF0IGJlZm9yZSB0aGUgdmlkZW8gaXMg
bG9hZGVkLiBTbyB0aGlzIHNob3VsZCBiZSAyLCBpZ25vcmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sCmluZGV4IDli
NWQ2OWIzMWEwMzNlMjI2ZmZlNGFkYTFlMTU0MjkzZjMzZWM5YTEuLjE5MDM2ZWFiOTZkMzU0OWE1
MmQzM2ZmODYxMjQ0OTk3ZTkwM2NmMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAK
IAogICAgICAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCJzZWVraW5nIiwgc3RhcnRUZXN0LCBm
YWxzZSk7CiAgICAgICAgIG1lZGlhLmxvb3AgPSB0cnVlOwotICAgICAgICBtZWRpYS5zcmMgPSBn
ZXRWaWRlb1VSSSgiL21lZGlhLzJ4Mi1ncmVlbiIpICsgIj8iICsgbmV3IERhdGUoKSArIE1hdGgu
cmFuZG9tKCk7CisgICAgICAgIG1lZGlhLnNyYyA9IGdldFZpZGVvVVJJKCIvbWVkaWEvMTZ4MTYt
Z3JlZW4iKSArICI/IiArIG5ldyBEYXRlKCkgKyBNYXRoLnJhbmRvbSgpOwogICAgICAgICBtZWRp
YS5wbGF5KCk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEvMTZ4MTYtZ3JlZW4ubXA0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8xNngx
Ni1ncmVlbi5tcDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQxN2M4ZTQ4ODRiODMwOWI1ODY3ZDExMWQ5NGMzODQy
MjY2NWU1NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI5MQp6Y21lSEtPPXUpVjZ0Mm1pNT9z
aDM7LVYyc1UyKHo4cTxiPlNDYyVhKkYmSmJRcU95eUsrU1lXfVdTWiV9Ylg2dVoKeklSJD99Wi1O
am4wVG8xOCohdnotJFJVV30jb1JXcTdaTG5IKDFZRnJqXkZFXnpsflc1QkNMcHlSS05HV19meiQl
CnpVaUVZc1c0eGw5djhTU2R1Pm5STHFiVFoqOE4/LSVGP01leWsmPn17dF83fnB0KXRhX0huXylm
QUgle0tEe1Y3Mgp6Ym1gKmQ8Pnx1d2R8fkZ3c3A7PjtvSTNnRzlafmEjQmczdU0/eWNuP0ttWUQ8
PDtLcUJPQDg+OyYlWlFedm44SkEKelBMeFApbWdYUj82YVk8S1VSezFCVSpaPzlGMlV3WDJacDY2
WnUrdktkQ0BTWV5GX20pMXo2UU9VWU1ITit9dGVHCnpKeSVBKTJuJGlOSGJyPzBSVVA+N2lESzxW
cDwzWE1DPTE2amNfSiY7RzxSaiRrRFF1aUUqSnwyN29xVCpOP0p4Xgp6ZGNrT3o8fT9xYVJoMTJ7
SHAtQUxAS2Brd2lsPzJwbVJUP21nYTs0MmhJRFBwWGQ9UStNN1NtYEVYfURWUTZPeEQKem5wYEsr
X2ROd150fSo5MjhpS1BQU08lNkwrXnJ+LVI/KGFeTzxvYTcrcCgmN0Y/blBPKT8rKVdSRnU/S3pR
fWJvCnpLP0VpOHFvXmpUUTB5TTJlOXlzSkkpSzUkQiVRPFkwLTxSZ1VaYGNfM3BmRVVgeH1YOStE
O1YyTFBLfTNNTEgyKQp6aCFrKjQxbz4xRjVsRHMyRCUpYHJ2Z2NZdyRpZnZkUlorSWZvPWBOMm0m
bWxQUDNmJndiczRyT21aN35DI2pze3oKempMQDJGQkRZblhHMXtVWGNwKzQtOTJyVnlMdDc8LW1Z
RTNKKG5QOCUhVnx+dG1QX2A7djdEc0JnRUlEJiU3UzdRCnpyd2F5T3IoIUlsRmJnckojMz5nSVlq
eiVoKGxXTTYrPjNFWVhiN0FrYSoxYEVLYjxEUzRQKWMtP0tqenp0PjE1Ywp6fExmIz8/e0QzQlNB
WTcmTEY/JUd7YTQ7TmJ7OXxJYGhBfU5sRkxYMWVlezFwZUZ4Sk98OHBuUXQ/Y2QhfDZJJTYKei04
I0NuR2Q0VUxMe1N8dDRMXyg/VUdQMntgfmtgPyVRNT12KFFPTGdXQk92eF5DVzJ5S2NaKndXfns7
WnZhWTNiCnowXyMjSStpbi1aM0BPO0xiUFVKeiNTV2hGYkpFb2M7KUx7LVprczZMYiRvKDZtI3NQ
WFJeV085NyFUYXp3T0BhbAp6dT9HKlg/NUMwV3NfUTUxOTg1KFVWTWl3WjAoNXNwZ3N2fmlDdWlX
NVU0YnlCZzQ+ZHdiMkVJeCNjdSl5ZkBuZWEKelo2clEjJWZCZ0lfOTRIZndDV3JOYEs7cFdpV1cq
bGRQVzBtajA5UkxYaV9TZDNUQWBiK3VJTXBaM3o1Sz9TNnZUCnooS3xGb2ZhQ19DYTs0TUZBcnRB
dCpweks+PGlfU09ie19MUDs2IUFuSVhrMjZwWCF0RithamtuamV2aVJhZDUmbwp6dEYjbGZ7VjBj
bG00MWZ3UHk5dFFrUlE/Y2pQKlR4eU80cCReaEg4eGNoVmhWY1dRPCNaeUtCWDtMZ29aTTR8ejkK
elFadnhrOGNvJXF0TXY4Tyo5XzBMbl87fTNIQURZMFB0ZyMkKFJNPzhhO3piQz0jI3JXWEBBWlA4
YmpHRDVOUXpvCnoqKDFZeSYkRiEtNmEhaDhheE5RZmVad0FEMUhYUnc+Sz9qbGtQWHF9JWNvWCRV
ZCp3UD5RQ1EoXzI/ZV8kNn0jawp6YUxQe3VOOER8ekhrT3s/THw7Mn5kXj4hKypGcG5taGNwa2Na
bVluTFR2PlU7KWRLdmJLJkc2cU5CWncyanhQfiQKbE94TEdOY2B2KkNrNitVZl8xP3F5ci1ZS0U4
ODMtP1cjJlIqWDB+NyYjdmdQK0VndHs/CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434709</attachid>
            <date>2021-07-31 18:22:23 -0700</date>
            <delta_ts>2021-07-31 19:22:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228560-20210731182222.patch</filename>
            <type>text/plain</type>
            <size>21757</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RhYmM1NTg2N2QwNTkx
YzJiMzJkZjJmMGRmZTJjZmIzMjVlNzFhNy4uOTlhZmVlOTE1YmU1NjU5MzM2ZmZiNDEyMWZhNTI5
MTNmNTc5MDU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA3LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbQorICAgICAgICBBVlBsYXll
ckl0ZW1WaWRlb091dHB1dC4gSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEKKyAgICAgICAgZm9yIHRoZSBjdXJyZW50IHRpbWUg
aXMgbm90IGF2YWlsYWJsZSwgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvCisgICAgICAgIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBp
cyBibG9ja2VkIGluIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0Cisg
ICAgICAgIHJlcXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2Nr
LgorCisgICAgICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRl
ID49IEhBVkVfQ1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUKKyAgICAgICAgQVZQbGF5ZXJM
YXllciBvciB0aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFp
bGFibGUgZnJhbWUuIFRoaXMKKyAgICAgICAgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRp
bmcgdG8gcGFpbnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQg
d2UKKyAgICAgICAgd2lsbCBhbHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yIHBhaW50
aW5nLCByZW1vdmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzCisgICAgICAgIGdlbmVy
YXRvciBjYWxsLgorCisgICAgICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVk
IHdoZW4gQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwKKyAg
ICAgICAgcmVnaXN0ZXIgd2l0aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90
aWZpY2F0aW9uIGFzIHNvb24gYXMgYW4gaW1hZ2UgaXMKKyAgICAgICAgYXZhaWxhYmxlLiBBbmQg
aW4gdGhlIGV4aXN0aW5nIGRlbGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0
aGUKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQg
b2NjdXJzLgorCisgICAgICAgIE5vIHRlc3RzIG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZs
YWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBhbmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbgorICAg
ICAgICBiZWhhdmlvci4KKworICAgICAgICBOb3RlLCBjaGFuZ2VzIGZyb20gbGFzdCBhdHRlbXB0
OgorCisgICAgICAgIEFWUGxheWVyTGF5ZXIgd2lsbCBmYWlsIHRvIG1vdmUgdG8gdGhlIC1yZWFk
eUZvckRpc3BsYXkgc3RhdGUgaWYgaXQncyBub3QgYXR0YWNoZWQgdG8gYQorICAgICAgICBsYXll
ciB0cmVlLCBzbyB3aGVuIHdlIHJlbW92ZSB0aGUgSFRNTE1lZGlhRWxlbWVudCBmcm9tIHRoZSBE
T00sIHdlIG11c3Qgc2VuZCBNZWRpYVBsYXllciBhCisgICAgICAgIGFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKCkgbm90aWZpY2F0aW9uLiBUaGlzIHdpbGwgY2F1c2UgdGhlCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgdG8gdGhyb3cgYXdheSBpdHMg
QVZQbGF5ZXJMYXllciwgYW5kIHdpbGwgbm90IGJsb2NrCisgICAgICAgIG1vdmluZyB0byBIQVZF
X0NVUlJFTlRfREFUQSB3YWl0aW5nIGZvciB0aGUgbGF5ZXIgdG8gYmVjb21lIHJlYWR5Rm9yRGlz
cGxheS4KKworICAgICAgICBXaGVuIHdlIHRocm93IGF3YXkgKG9yIGNyZWF0ZSkgdGhlIEFWUGxh
eWVyTGF5ZXIsIHdlIG11c3QgY29uZGl0aW9uYWxseSBjYWxsIHVwZGF0ZVN0YXRlcworICAgICAg
ICAoKSB0byByZWNhbGN1bGF0ZSB0aGUgcmVhZHlTdGF0ZTsgYnV0IGJlY2F1c2UgdXBkYXRlU3Rh
dGVzKCkgbWF5IHRyeSB0byBjcmVhdGUgb3IgZGVzdHJveQorICAgICAgICBhbiBBVlBsYXllckxh
eWVyLCB3ZSBtdXN0IGRvIHRoaXMgb24gYSB0YXNrIHRvIGF2b2lkIHJlLWVudHJhbmN5LiBBZG9w
dCB0aGVzZSBjaGFuZ2VzCisgICAgICAgIGluc2lkZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRiBhcyB3ZWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5k
ZXJpbmdDYW5CZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBy
ZXBhcmVGb3JSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyZW5kZXJpbmdNb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNjaGVkdWxlVXBkYXRlU3RhdGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3Rh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNv
bnRleHRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgc2V0UGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlQVZGUHVsbERlbGVn
YXRlIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6XSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKToKKwogMjAyMS0w
Ny0yOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDTWFrZV0gVXNlIGFuIGltcG9ydGVkIHRhcmdldCBmb3IgdGhlIGxpYmdjcnlwdCBsaWJy
YXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDVjOWM5YTc3YTBlNGI4MjQ3Y2RhZDQzMDY3ZTFmMTRiZDAzMWE2ODAu
LmJjZDE3NTQ3ODhlM2I3MWE5OGE3YWEyMmI0OWIwYzczNTg0NzFlNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDctMzEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMzM2MjgwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBEcml2ZS1ieSBmaXg6IFBhc3NpbmcgdGhlIHdy
b25nIHZhbHVlIGRvd24gdG8gdGhlIEdQVSBwcm9jZXNzIHdoZW4gdGhlIGFjY2VsZXJhdGVkUmVu
ZGVyaW5nU3RhdGVDaGFuZ2VkKCkuCisgICAgICAgIFdlIHNob3VsZCBiZSBwYXNzaW5nIHRoZSBy
ZXN1bHRzIG9mIE1lZGlhUGxheWVyOjpyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkgd2hpY2gg
Y29tZXMgZG93biBmcm9tIEhUTUxNZWRpYUVsZW1lbnQsCisgICAgICAgIG5vdCBNZWRpYVBsYXll
cjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpLCB3aGljaCBjb21lcyB1cCBmcm9tIHRo
ZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorCiAyMDIxLTA3LTI5
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU3xBU10g
VlRJbWFnZVJvdGF0aW9uU2Vzc2lvbiByZXR1cm5zIGEga1ZUSW1hZ2VSb3RhdGlvbk5vdFN1cHBv
cnRlZEVyciwgYnJlYWtzIHBhaW50aW5nIHJvdGF0ZWQgdmlkZW9zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4YTgwN2QxMjIzZDA0MmU3ZjJmNDAwODJhZTA1
NzY0MDkyZWFmMTI5Li42NDgwN2QxYzAxMDJhMWYxOWM0YmRkZTVhMjcxYjlkNzcwZmNiMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTgxOSw2ICs4MTks
OCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRhc2soKQogICAg
IGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fcGxheWVyLT5hY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOworCiAgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29z
dCA9IG1fcGxheWVyLT5leHRyYU1lbW9yeUNvc3QoKTsKICAgICBpZiAoZXh0cmFNZW1vcnlDb3N0
ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdCkgewogICAgICAgICBKU0M6OlZNJiB2bSA9IGNv
bW1vblZNKCk7CkBAIC01MDA4LDYgKzUwMTAsOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiAgICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoIW1faW5BY3RpdmVEb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwog
ICAgIHJldHVybiBpczxSZW5kZXJWaWRlbz4ocmVuZGVyZXIpCiAgICAgICAgICYmIGRvd25jYXN0
PFJlbmRlclZpZGVvPigqcmVuZGVyZXIpLnZpZXcoKS5jb21wb3NpdG9yKCkuY2FuQWNjZWxlcmF0
ZVZpZGVvUmVuZGVyaW5nKGRvd25jYXN0PFJlbmRlclZpZGVvPigqcmVuZGVyZXIpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAK
aW5kZXggYmJkNTYwYWQ0Y2EwMDA5MWFjMTliZDNmZWY5YWQyZmNiZWUwMDMxNi4uYmMwZTMzYzAy
OTE1NDkyZWQwOTIxNWVkYTQxZWNhYmRiMGY0ZmE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTEyNSwxMSArMTI1
LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVu
ZGVyaW5nKCkKICAgICBpZiAocHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ05vbmUpCiAg
ICAgICAgIHByZWZlcnJlZE1vZGUgPSBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKIAotICAgIGlm
IChjdXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYmIGN1cnJlbnRNb2RlICE9IE1lZGlhUmVu
ZGVyaW5nTm9uZSkKKyAgICBpZiAoY3VycmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTm9uZSkK
LSAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOworICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgInByZWZlcnJlZE1vZGU6ICIsIHByZWZlcnJlZE1vZGUsICIsIGN1cnJlbnRNb2Rl
OiAiLCBjdXJyZW50TW9kZSk7CisKKyAgICBpZiAoY3VycmVudE1vZGUgPT0gTWVkaWFSZW5kZXJp
bmdUb0xheWVyKQorICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwogCiAgICAgc3dpdGNoIChw
cmVmZXJyZWRNb2RlKSB7CiAgICAgY2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CkBAIC0xNDEsMTAg
KzE0Myw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVv
UmVuZGVyaW5nKCkKICAgICAgICAgY3JlYXRlVmlkZW9MYXllcigpOwogICAgICAgICBicmVhazsK
ICAgICB9Ci0KLSAgICAvLyBJZiB1c2luZyBhIG1vdmllIGxheWVyLCBpbmZvcm0gdGhlIGNsaWVu
dCBzbyB0aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRhdGVkLgotICAgIGlmIChjdXJyZW50TW9k
ZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRl
cmluZ1RvTGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5yZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1Jl
bmRlcmluZygpCkBAIC00NDMsOSArNDQxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogICAgIG1faXNBbGxvd2VkVG9SZW5kZXIg
PSB0cnVlOwogCiAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwotCi0gICAgaWYgKGN1cnJlbnRS
ZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdUb0xheWVyIHx8IHByZWZlcnJlZFJlbmRl
cmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5y
ZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3QKQEAgLTQ3MSw2ICs0NjYsMjEgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFJlc29sdmVkVVJMKFVSTCYm
IHJlc29sdmVkVVJMKQogICAgIG1fcmVzb2x2ZWRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKG1fcmVzb2x2ZWRVUkwpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6cmVuZGVyaW5nTW9kZUNoYW5nZWQoKQoreworICAgIGlmIChtX2RlbGF5aW5nUmVhZHlT
dGF0ZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkKKyAg
ICAgICAgc2NoZWR1bGVVcGRhdGVTdGF0ZXMoKTsKKyAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNj
aGVkdWxlVXBkYXRlU3RhdGVzKCkKK3sKKyAgICBxdWV1ZVRhc2tPbkV2ZW50TG9vcChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgd2Vha1RoaXMtPnVwZGF0ZVN0YXRlcygpOworICAgIH0pOworfQorCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKIHsKICAgICBpZiAobV9p
Z25vcmVMb2FkU3RhdGVDaGFuZ2VzKQpAQCAtNTQzLDExICs1NTMsMjEgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICAvLyBEbyBub3QgYWR2YW5jZSB0byBIYXZlQ3VycmVudERhdGEgdW5sZXNzIHRoZXJl
IGlzIGEgZGVjb2RlZCBmcmFtZSBhdmFpbGFibGUgZm9yIGRpc3BsYXkKKyAgICBpZiAobmV3UmVh
ZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhCisgICAg
ICAgICYmIG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVu
dERhdGEKKyAgICAgICAgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiAhaGFzQXZhaWxhYmxlVmlkZW9G
cmFtZSgpKSB7CisgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZTo6SGF2ZU1ldGFkYXRhOworICAgICAgICBtX2RlbGF5aW5nUmVhZHlTdGF0ZSA9IHRydWU7Cisg
ICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiFoYXNBdmFpbGFibGVWaWRlb0ZyYW1l
KCksIGxvd2VyaW5nIHJlYWR5U3RhdGUgdG8gIiwgbmV3UmVhZHlTdGF0ZSk7CisgICAgfSBlbHNl
CisgICAgICAgIG1fZGVsYXlpbmdSZWFkeVN0YXRlID0gZmFsc2U7CisKICAgICBpZiAoaXNSZWFk
eUZvclZpZGVvU2V0dXAoKSAmJiBjdXJyZW50UmVuZGVyaW5nTW9kZSgpICE9IHByZWZlcnJlZFJl
bmRlcmluZ01vZGUoKSkKICAgICAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogCiAgICAgaWYg
KCFtX2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgewotICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkKKyAgICAgICAgaWYgKG5ld1Jl
YWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKQogICAg
ICAgICAgICAgbmV3UmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3Vy
cmVudERhdGE7CiAgICAgICAgIG1faGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsK
ICAgICAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDQ4
MjI4YmFmM2IwMjJiZmEzNDBlNGExZmM0MGZiMWU4MjkzNDY2NmMuLmFjYmY0Y2UzYTkzMjlmMjJj
MWJhZmJkOTAwNzdjNjI3NWVkMWE4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTI3MSw2ICsyNzEsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiBzdGF0aWNNSU1FVHlwZUxpc3QoKTsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQgc2No
ZWR1bGVVcGRhdGVTdGF0ZXMoKTsKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgdm9p
ZCBzZXRIYXNWaWRlbyhib29sKTsKQEAgLTMyMCw2ICszMjEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CiAgICAgY29uc3QgVVJMJiByZXNvbHZlZFVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAorICAgIHZvaWQgcmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKQEAg
LTM2OCw2ICszNzEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkOwogICAgIGJvb2wgbV9zaG91bGRNYWludGFpbkFzcGVjdFJhdGlvOwogICAgIGJvb2wgbV9z
ZWVraW5nOworICAgIGJvb2wgbV9kZWxheWluZ1JlYWR5U3RhdGUgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMTczOWY1MjczZGZj
NDA4ODJjYTk5MTZjNTAwY2QzMzNiMjQ5ZTYyZS4uMGY2Njk1MjJhODZmZWEwNzVkZWJmZTkyODBi
YmVkZTg1NzViOTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC00NjAsNiArNDYwLDggQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlVmlkZW9MYXllcigpCiAK
ICAgICBpZiAobV9hdmZXcmFwcGVyKQogICAgICAgICBtX2F2ZldyYXBwZXItPmNyZWF0ZUFWQ0ZW
aWRlb0xheWVyKCk7CisKKyAgICByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpkZXN0cm95VmlkZW9MYXllcigpCkBAIC00
NjgsNiArNDcwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6ZGVz
dHJveVZpZGVvTGF5ZXIoKQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpkZXN0cm95VmlkZW9MYXllciglcCkgLSBkZXN0cm95aW5nICVwIiwgdGhpcywg
dmlkZW9MYXllcihtX2F2ZldyYXBwZXIpKTsKICAgICBpZiAobV9hdmZXcmFwcGVyKQogICAgICAg
ICBtX2F2ZldyYXBwZXItPmRlc3Ryb3lWaWRlb0xheWVyKCk7CisKKyAgICByZW5kZXJpbmdNb2Rl
Q2hhbmdlZCgpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2
YTg1Yzg0OWRlZDE5MzJkNWU2Zjg1NmMxODU1YWIwMTE0OWZiZGVlLi5lY2UyYTMxZDk4MjQyNWJm
NTVkMjc5NmMyY2E5NGYzMWM3ZDAzM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xMTgs
NiArMTE4LDggQEAgcHVibGljOgogCiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBj
b25zdCBmaW5hbDsKIAorICAgIHZvaWQgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworCiBw
cml2YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBjZG1JbnN0YW5j
ZUF0dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCA0YTRhNmRjMjZiZWJmZWM1ZTJlNmFmZDJiMDhkMDc0NWIxODU0MTZjLi5hNWQ4ZDBlNmExYTA5
NzIzMzY3ZmU4NmQ0MTg0NzMzZGY3Y2JhNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTY3LDcgKzY3LDYgQEAKICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0
ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVOU1VSTFNlc3Npb24uaCIK
LSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0SW1hZ2VHZW5lcmF0b3IuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2suaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1l
ZGlhU2VsZWN0aW9uR3JvdXAuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1ldGFkYXRhSXRl
bS5oPgpAQCAtMTk2LDYgKzE5NSw3IEBAIGVudW0gTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNl
cnZhdGlvbkNvbnRleHQgewogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIDogTlNP
YmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAgQmluYXJ5U2VtYXBo
b3JlIG1fc2VtYXBob3JlOwogfQorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudDsKIC0gKHZvaWQpb3V0cHV0TWVkaWFE
YXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJdGVtT3V0cHV0ICopc2VuZGVyOwogLSAodm9pZClvdXRw
dXRTZXF1ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbU91dHB1dCAqKW91dHB1dDsKIApAQCAt
NTYxLDcgKzU2MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
aGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92
aWRlb091dHB1dCB8fCBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiBtX3ZpZGVvT3V0cHV0
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNv
bnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTU2OSwzNSArNTY5LDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCiAg
ICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgSU5GT19MT0coTE9H
SURFTlRJRklFUik7Ci0KLSAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdlR2VuZXJhdG9yKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gW1BBTDo6Z2V0QVZBc3Nl
dEltYWdlR2VuZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJhdG9yV2l0aEFzc2V0Om1fYXZB
c3NldC5nZXQoKV07Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1v
ZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07Ci0gICAg
W21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3Jt
OllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVy
YW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQo
KSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107Ci19Ci0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRW
aWRlb1JlbmRlcmVyKCkKIHsKICAgICBkZXN0cm95VmlkZW9PdXRwdXQoKTsKLSAgICBkZXN0cm95
SW1hZ2VHZW5lcmF0b3IoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKQotewotICAgIGlmICghbV9pbWFnZUdlbmVy
YXRvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0K
LSAgICBtX2ltYWdlR2VuZXJhdG9yID0gMDsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKQEAgLTYxOSw3ICs1OTMsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIo
KQogICAgICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCiAgICAgICAgICAgICBjcmVhdGVWaWRlb091
dHB1dCgpOwogCi0gICAgICAgIHBsYXllcigpLT5yZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOworICAg
ICAgICByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogICAgIH0pOwogfQogCkBAIC02NTgsNiArNjMy
LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Vmlk
ZW9MYXllcigpCiAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKIAogICAgIG1fdmlkZW9MYXllciA9IG5pbDsKKworICAgIHJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpn
ZXRTdGFydERhdGUoKSBjb25zdApAQCAtMTgxMyw4ICsxNzg5LDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnQKICAgICAvLyB0aGUgdmlkZW8gb3V0cHV0LCB0b28uCiAgICAgaWYgKHZpZGVvT3V0
cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSB8fCAobV92aWRlb091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1
ZmZlcikpCiAgICAgICAgIHBhaW50V2l0aFZpZGVvT3V0cHV0KGNvbnRleHQsIHJlY3QpOwotICAg
IGVsc2UKLSAgICAgICAgcGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoY29udGV4dCwgcmVjdCk7CiAK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFs
c2UpOwpAQCAtMTgzOCwzOCArMTgxMiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAg
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3Io
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1h
Z2UgPSBjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoY3VycmVudFRpbWUoKSwgcmVjdCk7Ci0gICAg
aWYgKGltYWdlKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEuMGYs
IC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKLSAgICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7Ci0gICAg
ICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RN
YWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5n
ZXQoKSk7Ci0gICAgfQotfQotCi1SZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUs
IGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICBpZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0g
ICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7Ci0gICAgQVNTRVJUKG1faW1hZ2VHZW5lcmF0
b3IpOwotCi0gICAgTW9ub3RvbmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwot
Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Qu
c2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VX
aXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwotICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRo
Q29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwotCi0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25p
Y1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19
Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRl
ZFR5cGVzKQogewogICAgIHN1cHBvcnRlZFR5cGVzID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLnN1cHBvcnRlZFR5cGVzKCk7CkBAIC0yNDQwLDExICsyMzgyLDE4IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQog
ICAgIH0KIAogICAgIG1fdmlkZW9PdXRwdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW21fdmlkZW9PdXRwdXREZWxlZ2F0ZSBz
ZXRQYXJlbnQ6KnRoaXNdOwogICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRlOm1fdmlkZW9P
dXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpXTsKKyAg
ICBbbV92aWRlb091dHB1dCByZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFDaGFuZ2VXaXRo
QWR2YW5jZUludGVydmFsOjBdOwogCiAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIGFkZE91dHB1
dDptX3ZpZGVvT3V0cHV0LmdldCgpXTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCkKK3sKKyAgICB1cGRhdGVT
dGF0ZXMoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpk
ZXN0cm95VmlkZW9PdXRwdXQoKQogewogICAgIGlmICghbV92aWRlb091dHB1dCkKQEAgLTI1Mzks
MTIgKzI0ODgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBh
aW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiAgICAgRmxvYXRSZWN0IGlt
YWdlUmVjdCB7IEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9sYXN0SW1hZ2UtPnNpemUoKSB9OwogICAg
IGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCptX2xhc3RJbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwg
b3V0cHV0UmVjdCwgaW1hZ2VSZWN0KTsKLQotICAgIC8vIElmIHdlIGhhdmUgY3JlYXRlZCBhbiBB
VkFzc2V0SW1hZ2VHZW5lcmF0b3IgaW4gdGhlIHBhc3QgZHVlIHRvIG1fdmlkZW9PdXRwdXQgbm90
IGhhdmluZyBhbiBhdmFpbGFibGUKLSAgICAvLyB2aWRlbyBmcmFtZSwgZGVzdHJveSBpdCBub3cg
dGhhdCBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgotICAgIGlmIChtX2ltYWdlR2VuZXJhdG9yKQot
ICAgICAgICBkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKTsKLQogfQogCiBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpCkBAIC0zODk5LDE0ICszODQyLDI1IEBAIE5TQXJyYXkqIHBsYXll
cktWT1Byb3BlcnRpZXMoKQogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVs
bERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGFy
ZW50OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIAorLSAodm9p
ZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMm
KXBhcmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworfQorCiAtICh2
b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICop
b3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1hcGhvcmUuc2ln
bmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwYXJlbnQgPSBfcGFyZW50XSB7
CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPm91dHB1dE1lZGlhRGF0
YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0Zs
dXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKaW5kZXggZDljNThkZThmNTdiMDRhOWJlNDYxNjNjNWQ2NTM5OGU5YjQ3NWU2
My4uNTZiNzBkZmUxM2JiYmMzOWI2M2UxYWMzZmYxMmJlYTI4YWU2ZThkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNDU1LDcgKzQ1NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZCgpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbWFrZVJlZlB0cihtX3BsYXllci5nZXQoKSkp
Ci0gICAgICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChwbGF5ZXItPnN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSksIG1faWQpOworICAgICAgICBjb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQocGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpLCBtX2lkKTsKIH0K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434710</attachid>
            <date>2021-07-31 19:22:38 -0700</date>
            <delta_ts>2021-07-31 19:43:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210731192237.patch</filename>
            <type>text/plain</type>
            <size>25175</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RhYmM1NTg2N2QwNTkx
YzJiMzJkZjJmMGRmZTJjZmIzMjVlNzFhNy4uOTlhZmVlOTE1YmU1NjU5MzM2ZmZiNDEyMWZhNTI5
MTNmNTc5MDU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA3LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbQorICAgICAgICBBVlBsYXll
ckl0ZW1WaWRlb091dHB1dC4gSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEKKyAgICAgICAgZm9yIHRoZSBjdXJyZW50IHRpbWUg
aXMgbm90IGF2YWlsYWJsZSwgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvCisgICAgICAgIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBp
cyBibG9ja2VkIGluIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0Cisg
ICAgICAgIHJlcXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2Nr
LgorCisgICAgICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRl
ID49IEhBVkVfQ1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUKKyAgICAgICAgQVZQbGF5ZXJM
YXllciBvciB0aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFp
bGFibGUgZnJhbWUuIFRoaXMKKyAgICAgICAgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRp
bmcgdG8gcGFpbnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQg
d2UKKyAgICAgICAgd2lsbCBhbHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yIHBhaW50
aW5nLCByZW1vdmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzCisgICAgICAgIGdlbmVy
YXRvciBjYWxsLgorCisgICAgICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVk
IHdoZW4gQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwKKyAg
ICAgICAgcmVnaXN0ZXIgd2l0aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90
aWZpY2F0aW9uIGFzIHNvb24gYXMgYW4gaW1hZ2UgaXMKKyAgICAgICAgYXZhaWxhYmxlLiBBbmQg
aW4gdGhlIGV4aXN0aW5nIGRlbGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0
aGUKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQg
b2NjdXJzLgorCisgICAgICAgIE5vIHRlc3RzIG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZs
YWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBhbmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbgorICAg
ICAgICBiZWhhdmlvci4KKworICAgICAgICBOb3RlLCBjaGFuZ2VzIGZyb20gbGFzdCBhdHRlbXB0
OgorCisgICAgICAgIEFWUGxheWVyTGF5ZXIgd2lsbCBmYWlsIHRvIG1vdmUgdG8gdGhlIC1yZWFk
eUZvckRpc3BsYXkgc3RhdGUgaWYgaXQncyBub3QgYXR0YWNoZWQgdG8gYQorICAgICAgICBsYXll
ciB0cmVlLCBzbyB3aGVuIHdlIHJlbW92ZSB0aGUgSFRNTE1lZGlhRWxlbWVudCBmcm9tIHRoZSBE
T00sIHdlIG11c3Qgc2VuZCBNZWRpYVBsYXllciBhCisgICAgICAgIGFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKCkgbm90aWZpY2F0aW9uLiBUaGlzIHdpbGwgY2F1c2UgdGhlCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgdG8gdGhyb3cgYXdheSBpdHMg
QVZQbGF5ZXJMYXllciwgYW5kIHdpbGwgbm90IGJsb2NrCisgICAgICAgIG1vdmluZyB0byBIQVZF
X0NVUlJFTlRfREFUQSB3YWl0aW5nIGZvciB0aGUgbGF5ZXIgdG8gYmVjb21lIHJlYWR5Rm9yRGlz
cGxheS4KKworICAgICAgICBXaGVuIHdlIHRocm93IGF3YXkgKG9yIGNyZWF0ZSkgdGhlIEFWUGxh
eWVyTGF5ZXIsIHdlIG11c3QgY29uZGl0aW9uYWxseSBjYWxsIHVwZGF0ZVN0YXRlcworICAgICAg
ICAoKSB0byByZWNhbGN1bGF0ZSB0aGUgcmVhZHlTdGF0ZTsgYnV0IGJlY2F1c2UgdXBkYXRlU3Rh
dGVzKCkgbWF5IHRyeSB0byBjcmVhdGUgb3IgZGVzdHJveQorICAgICAgICBhbiBBVlBsYXllckxh
eWVyLCB3ZSBtdXN0IGRvIHRoaXMgb24gYSB0YXNrIHRvIGF2b2lkIHJlLWVudHJhbmN5LiBBZG9w
dCB0aGVzZSBjaGFuZ2VzCisgICAgICAgIGluc2lkZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRiBhcyB3ZWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5k
ZXJpbmdDYW5CZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBy
ZXBhcmVGb3JSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyZW5kZXJpbmdNb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNjaGVkdWxlVXBkYXRlU3RhdGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3Rh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNv
bnRleHRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgc2V0UGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlQVZGUHVsbERlbGVn
YXRlIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6XSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKToKKwogMjAyMS0w
Ny0yOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDTWFrZV0gVXNlIGFuIGltcG9ydGVkIHRhcmdldCBmb3IgdGhlIGxpYmdjcnlwdCBsaWJy
YXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDVjOWM5YTc3YTBlNGI4MjQ3Y2RhZDQzMDY3ZTFmMTRiZDAzMWE2ODAu
LmJjZDE3NTQ3ODhlM2I3MWE5OGE3YWEyMmI0OWIwYzczNTg0NzFlNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDctMzEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMzM2MjgwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBEcml2ZS1ieSBmaXg6IFBhc3NpbmcgdGhlIHdy
b25nIHZhbHVlIGRvd24gdG8gdGhlIEdQVSBwcm9jZXNzIHdoZW4gdGhlIGFjY2VsZXJhdGVkUmVu
ZGVyaW5nU3RhdGVDaGFuZ2VkKCkuCisgICAgICAgIFdlIHNob3VsZCBiZSBwYXNzaW5nIHRoZSBy
ZXN1bHRzIG9mIE1lZGlhUGxheWVyOjpyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkgd2hpY2gg
Y29tZXMgZG93biBmcm9tIEhUTUxNZWRpYUVsZW1lbnQsCisgICAgICAgIG5vdCBNZWRpYVBsYXll
cjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpLCB3aGljaCBjb21lcyB1cCBmcm9tIHRo
ZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorCiAyMDIxLTA3LTI5
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU3xBU10g
VlRJbWFnZVJvdGF0aW9uU2Vzc2lvbiByZXR1cm5zIGEga1ZUSW1hZ2VSb3RhdGlvbk5vdFN1cHBv
cnRlZEVyciwgYnJlYWtzIHBhaW50aW5nIHJvdGF0ZWQgdmlkZW9zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4YTgwN2QxMjIzZDA0MmU3ZjJmNDAwODJhZTA1
NzY0MDkyZWFmMTI5Li42NDgwN2QxYzAxMDJhMWYxOWM0YmRkZTVhMjcxYjlkNzcwZmNiMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTgxOSw2ICs4MTks
OCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRhc2soKQogICAg
IGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fcGxheWVyLT5hY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOworCiAgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29z
dCA9IG1fcGxheWVyLT5leHRyYU1lbW9yeUNvc3QoKTsKICAgICBpZiAoZXh0cmFNZW1vcnlDb3N0
ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdCkgewogICAgICAgICBKU0M6OlZNJiB2bSA9IGNv
bW1vblZNKCk7CkBAIC01MDA4LDYgKzUwMTAsOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiAgICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoIW1faW5BY3RpdmVEb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwog
ICAgIHJldHVybiBpczxSZW5kZXJWaWRlbz4ocmVuZGVyZXIpCiAgICAgICAgICYmIGRvd25jYXN0
PFJlbmRlclZpZGVvPigqcmVuZGVyZXIpLnZpZXcoKS5jb21wb3NpdG9yKCkuY2FuQWNjZWxlcmF0
ZVZpZGVvUmVuZGVyaW5nKGRvd25jYXN0PFJlbmRlclZpZGVvPigqcmVuZGVyZXIpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAK
aW5kZXggYmJkNTYwYWQ0Y2EwMDA5MWFjMTliZDNmZWY5YWQyZmNiZWUwMDMxNi4uYmMwZTMzYzAy
OTE1NDkyZWQwOTIxNWVkYTQxZWNhYmRiMGY0ZmE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTEyNSwxMSArMTI1
LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVu
ZGVyaW5nKCkKICAgICBpZiAocHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ05vbmUpCiAg
ICAgICAgIHByZWZlcnJlZE1vZGUgPSBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKIAotICAgIGlm
IChjdXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYmIGN1cnJlbnRNb2RlICE9IE1lZGlhUmVu
ZGVyaW5nTm9uZSkKKyAgICBpZiAoY3VycmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTm9uZSkK
LSAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOworICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgInByZWZlcnJlZE1vZGU6ICIsIHByZWZlcnJlZE1vZGUsICIsIGN1cnJlbnRNb2Rl
OiAiLCBjdXJyZW50TW9kZSk7CisKKyAgICBpZiAoY3VycmVudE1vZGUgPT0gTWVkaWFSZW5kZXJp
bmdUb0xheWVyKQorICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwogCiAgICAgc3dpdGNoIChw
cmVmZXJyZWRNb2RlKSB7CiAgICAgY2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CkBAIC0xNDEsMTAg
KzE0Myw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVv
UmVuZGVyaW5nKCkKICAgICAgICAgY3JlYXRlVmlkZW9MYXllcigpOwogICAgICAgICBicmVhazsK
ICAgICB9Ci0KLSAgICAvLyBJZiB1c2luZyBhIG1vdmllIGxheWVyLCBpbmZvcm0gdGhlIGNsaWVu
dCBzbyB0aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRhdGVkLgotICAgIGlmIChjdXJyZW50TW9k
ZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRl
cmluZ1RvTGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5yZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1Jl
bmRlcmluZygpCkBAIC00NDMsOSArNDQxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogICAgIG1faXNBbGxvd2VkVG9SZW5kZXIg
PSB0cnVlOwogCiAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwotCi0gICAgaWYgKGN1cnJlbnRS
ZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdUb0xheWVyIHx8IHByZWZlcnJlZFJlbmRl
cmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5y
ZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3QKQEAgLTQ3MSw2ICs0NjYsMjEgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFJlc29sdmVkVVJMKFVSTCYm
IHJlc29sdmVkVVJMKQogICAgIG1fcmVzb2x2ZWRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKG1fcmVzb2x2ZWRVUkwpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6cmVuZGVyaW5nTW9kZUNoYW5nZWQoKQoreworICAgIGlmIChtX2RlbGF5aW5nUmVhZHlT
dGF0ZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkKKyAg
ICAgICAgc2NoZWR1bGVVcGRhdGVTdGF0ZXMoKTsKKyAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNj
aGVkdWxlVXBkYXRlU3RhdGVzKCkKK3sKKyAgICBxdWV1ZVRhc2tPbkV2ZW50TG9vcChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgd2Vha1RoaXMtPnVwZGF0ZVN0YXRlcygpOworICAgIH0pOworfQorCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKIHsKICAgICBpZiAobV9p
Z25vcmVMb2FkU3RhdGVDaGFuZ2VzKQpAQCAtNTQzLDExICs1NTMsMjEgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICAvLyBEbyBub3QgYWR2YW5jZSB0byBIYXZlQ3VycmVudERhdGEgdW5sZXNzIHRoZXJl
IGlzIGEgZGVjb2RlZCBmcmFtZSBhdmFpbGFibGUgZm9yIGRpc3BsYXkKKyAgICBpZiAobmV3UmVh
ZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhCisgICAg
ICAgICYmIG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVu
dERhdGEKKyAgICAgICAgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiAhaGFzQXZhaWxhYmxlVmlkZW9G
cmFtZSgpKSB7CisgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZTo6SGF2ZU1ldGFkYXRhOworICAgICAgICBtX2RlbGF5aW5nUmVhZHlTdGF0ZSA9IHRydWU7Cisg
ICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiFoYXNBdmFpbGFibGVWaWRlb0ZyYW1l
KCksIGxvd2VyaW5nIHJlYWR5U3RhdGUgdG8gIiwgbmV3UmVhZHlTdGF0ZSk7CisgICAgfSBlbHNl
CisgICAgICAgIG1fZGVsYXlpbmdSZWFkeVN0YXRlID0gZmFsc2U7CisKICAgICBpZiAoaXNSZWFk
eUZvclZpZGVvU2V0dXAoKSAmJiBjdXJyZW50UmVuZGVyaW5nTW9kZSgpICE9IHByZWZlcnJlZFJl
bmRlcmluZ01vZGUoKSkKICAgICAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogCiAgICAgaWYg
KCFtX2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgewotICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkKKyAgICAgICAgaWYgKG5ld1Jl
YWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKQogICAg
ICAgICAgICAgbmV3UmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3Vy
cmVudERhdGE7CiAgICAgICAgIG1faGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsK
ICAgICAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDQ4
MjI4YmFmM2IwMjJiZmEzNDBlNGExZmM0MGZiMWU4MjkzNDY2NmMuLmFjYmY0Y2UzYTkzMjlmMjJj
MWJhZmJkOTAwNzdjNjI3NWVkMWE4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTI3MSw2ICsyNzEsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiBzdGF0aWNNSU1FVHlwZUxpc3QoKTsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQgc2No
ZWR1bGVVcGRhdGVTdGF0ZXMoKTsKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgdm9p
ZCBzZXRIYXNWaWRlbyhib29sKTsKQEAgLTMyMCw2ICszMjEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CiAgICAgY29uc3QgVVJMJiByZXNvbHZlZFVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAorICAgIHZvaWQgcmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKQEAg
LTM2OCw2ICszNzEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkOwogICAgIGJvb2wgbV9zaG91bGRNYWludGFpbkFzcGVjdFJhdGlvOwogICAgIGJvb2wgbV9z
ZWVraW5nOworICAgIGJvb2wgbV9kZWxheWluZ1JlYWR5U3RhdGUgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMTczOWY1MjczZGZj
NDA4ODJjYTk5MTZjNTAwY2QzMzNiMjQ5ZTYyZS4uMGY2Njk1MjJhODZmZWEwNzVkZWJmZTkyODBi
YmVkZTg1NzViOTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC00NjAsNiArNDYwLDggQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlVmlkZW9MYXllcigpCiAK
ICAgICBpZiAobV9hdmZXcmFwcGVyKQogICAgICAgICBtX2F2ZldyYXBwZXItPmNyZWF0ZUFWQ0ZW
aWRlb0xheWVyKCk7CisKKyAgICByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpkZXN0cm95VmlkZW9MYXllcigpCkBAIC00
NjgsNiArNDcwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6ZGVz
dHJveVZpZGVvTGF5ZXIoKQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpkZXN0cm95VmlkZW9MYXllciglcCkgLSBkZXN0cm95aW5nICVwIiwgdGhpcywg
dmlkZW9MYXllcihtX2F2ZldyYXBwZXIpKTsKICAgICBpZiAobV9hdmZXcmFwcGVyKQogICAgICAg
ICBtX2F2ZldyYXBwZXItPmRlc3Ryb3lWaWRlb0xheWVyKCk7CisKKyAgICByZW5kZXJpbmdNb2Rl
Q2hhbmdlZCgpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2
YTg1Yzg0OWRlZDE5MzJkNWU2Zjg1NmMxODU1YWIwMTE0OWZiZGVlLi5lY2UyYTMxZDk4MjQyNWJm
NTVkMjc5NmMyY2E5NGYzMWM3ZDAzM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xMTgs
NiArMTE4LDggQEAgcHVibGljOgogCiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBj
b25zdCBmaW5hbDsKIAorICAgIHZvaWQgb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworCiBw
cml2YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBjZG1JbnN0YW5j
ZUF0dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCA0YTRhNmRjMjZiZWJmZWM1ZTJlNmFmZDJiMDhkMDc0NWIxODU0MTZjLi5hNWQ4ZDBlNmExYTA5
NzIzMzY3ZmU4NmQ0MTg0NzMzZGY3Y2JhNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTY3LDcgKzY3LDYgQEAKICNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0
ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVOU1VSTFNlc3Npb24uaCIK
LSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0SW1hZ2VHZW5lcmF0b3IuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2suaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1l
ZGlhU2VsZWN0aW9uR3JvdXAuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1ldGFkYXRhSXRl
bS5oPgpAQCAtMTk2LDYgKzE5NSw3IEBAIGVudW0gTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNl
cnZhdGlvbkNvbnRleHQgewogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIDogTlNP
YmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAgQmluYXJ5U2VtYXBo
b3JlIG1fc2VtYXBob3JlOwogfQorLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMmKXBhcmVudDsKIC0gKHZvaWQpb3V0cHV0TWVkaWFE
YXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJdGVtT3V0cHV0ICopc2VuZGVyOwogLSAodm9pZClvdXRw
dXRTZXF1ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbU91dHB1dCAqKW91dHB1dDsKIApAQCAt
NTYxLDcgKzU2MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
aGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92
aWRlb091dHB1dCB8fCBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiBtX3ZpZGVvT3V0cHV0
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNv
bnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTU2OSwzNSArNTY5LDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCiAg
ICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgSU5GT19MT0coTE9H
SURFTlRJRklFUik7Ci0KLSAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdlR2VuZXJhdG9yKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltYWdlR2VuZXJhdG9yID0gW1BBTDo6Z2V0QVZBc3Nl
dEltYWdlR2VuZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJhdG9yV2l0aEFzc2V0Om1fYXZB
c3NldC5nZXQoKV07Ci0KLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1v
ZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07Ci0gICAg
W21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3Jt
OllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVy
YW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQo
KSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107Ci19Ci0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRW
aWRlb1JlbmRlcmVyKCkKIHsKICAgICBkZXN0cm95VmlkZW9PdXRwdXQoKTsKLSAgICBkZXN0cm95
SW1hZ2VHZW5lcmF0b3IoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKQotewotICAgIGlmICghbV9pbWFnZUdlbmVy
YXRvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0K
LSAgICBtX2ltYWdlR2VuZXJhdG9yID0gMDsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKQEAgLTYxOSw3ICs1OTMsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIo
KQogICAgICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCiAgICAgICAgICAgICBjcmVhdGVWaWRlb091
dHB1dCgpOwogCi0gICAgICAgIHBsYXllcigpLT5yZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOworICAg
ICAgICByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogICAgIH0pOwogfQogCkBAIC02NTgsNiArNjMy
LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Vmlk
ZW9MYXllcigpCiAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKIAogICAgIG1fdmlkZW9MYXllciA9IG5pbDsKKworICAgIHJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpn
ZXRTdGFydERhdGUoKSBjb25zdApAQCAtMTgxMyw4ICsxNzg5LDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnQKICAgICAvLyB0aGUgdmlkZW8gb3V0cHV0LCB0b28uCiAgICAgaWYgKHZpZGVvT3V0
cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSB8fCAobV92aWRlb091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1
ZmZlcikpCiAgICAgICAgIHBhaW50V2l0aFZpZGVvT3V0cHV0KGNvbnRleHQsIHJlY3QpOwotICAg
IGVsc2UKLSAgICAgICAgcGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoY29udGV4dCwgcmVjdCk7CiAK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFs
c2UpOwpAQCAtMTgzOCwzOCArMTgxMiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAg
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3Io
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0KLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1h
Z2UgPSBjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoY3VycmVudFRpbWUoKSwgcmVjdCk7Ci0gICAg
aWYgKGltYWdlKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEuMGYs
IC0xLjBmKSk7Ci0gICAgICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJ
bnRlcnBvbGF0aW9uUXVhbGl0eTo6TG93KTsKLSAgICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7Ci0gICAg
ICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RN
YWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0KCkpLCBpbWFnZS5n
ZXQoKSk7Ci0gICAgfQotfQotCi1SZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUs
IGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICBpZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0g
ICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7Ci0gICAgQVNTRVJUKG1faW1hZ2VHZW5lcmF0
b3IpOwotCi0gICAgTW9ub3RvbmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwot
Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Qu
c2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VX
aXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwotICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRo
Q29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwotCi0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25p
Y1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19
Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRl
ZFR5cGVzKQogewogICAgIHN1cHBvcnRlZFR5cGVzID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLnN1cHBvcnRlZFR5cGVzKCk7CkBAIC0yNDQwLDExICsyMzgyLDE4IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQoKQog
ICAgIH0KIAogICAgIG1fdmlkZW9PdXRwdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW21fdmlkZW9PdXRwdXREZWxlZ2F0ZSBz
ZXRQYXJlbnQ6KnRoaXNdOwogICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRlOm1fdmlkZW9P
dXRwdXREZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpXTsKKyAg
ICBbbV92aWRlb091dHB1dCByZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFDaGFuZ2VXaXRo
QWR2YW5jZUludGVydmFsOjBdOwogCiAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIGFkZE91dHB1
dDptX3ZpZGVvT3V0cHV0LmdldCgpXTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCkKK3sKKyAgICB1cGRhdGVT
dGF0ZXMoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpk
ZXN0cm95VmlkZW9PdXRwdXQoKQogewogICAgIGlmICghbV92aWRlb091dHB1dCkKQEAgLTI1Mzks
MTIgKzI0ODgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBh
aW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiAgICAgRmxvYXRSZWN0IGlt
YWdlUmVjdCB7IEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9sYXN0SW1hZ2UtPnNpemUoKSB9OwogICAg
IGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCptX2xhc3RJbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwg
b3V0cHV0UmVjdCwgaW1hZ2VSZWN0KTsKLQotICAgIC8vIElmIHdlIGhhdmUgY3JlYXRlZCBhbiBB
VkFzc2V0SW1hZ2VHZW5lcmF0b3IgaW4gdGhlIHBhc3QgZHVlIHRvIG1fdmlkZW9PdXRwdXQgbm90
IGhhdmluZyBhbiBhdmFpbGFibGUKLSAgICAvLyB2aWRlbyBmcmFtZSwgZGVzdHJveSBpdCBub3cg
dGhhdCBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgotICAgIGlmIChtX2ltYWdlR2VuZXJhdG9yKQot
ICAgICAgICBkZXN0cm95SW1hZ2VHZW5lcmF0b3IoKTsKLQogfQogCiBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpCkBAIC0zODk5LDE0ICszODQyLDI1IEBAIE5TQXJyYXkqIHBsYXll
cktWT1Byb3BlcnRpZXMoKQogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVs
bERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGFy
ZW50OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIAorLSAodm9p
ZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMm
KXBhcmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworfQorCiAtICh2
b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICop
b3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1hcGhvcmUuc2ln
bmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwYXJlbnQgPSBfcGFyZW50XSB7
CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPm91dHB1dE1lZGlhRGF0
YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1ZW5jZVdhc0Zs
dXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKaW5kZXggZDljNThkZThmNTdiMDRhOWJlNDYxNjNjNWQ2NTM5OGU5YjQ3NWU2
My4uNTZiNzBkZmUxM2JiYmMzOWI2M2UxYWMzZmYxMmJlYTI4YWU2ZThkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNDU1LDcgKzQ1NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZCgpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbWFrZVJlZlB0cihtX3BsYXllci5nZXQoKSkp
Ci0gICAgICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChwbGF5ZXItPnN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSksIG1faWQpOworICAgICAgICBjb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQocGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpLCBtX2lkKTsKIH0K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA0ZGExYmE1NTA4NDdhZWZiOGQwNGM1MDcwMTQ2N2IzYmM2YjQyMzNj
Li5iMWMyZTUwNjJkZmE3ODkzYzcxMTFkNTM3N2NiMDViYTU2YTZjNjJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0yOSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0
IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSAyeDItZ3JlZW4ubXA0IGZpbGUgZmFpbHMgdG8gZGVjb2Rl
IGFzIGl0cyBuYXR1cmFsIHNpemUgaXMgdG9vIHNtYWxsIGZvciB0aGUgc3lzdGVtIGRlY29kZXIg
dG8gaGFuZGxlLiBSZXBsYWNlIHdpdGgKKyAgICAgICAgYSBtZWRpYSBmaWxlIG9mIG1vcmUgcmVh
c29uYWJsZSBzaXplLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVy
aW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5k
LWltYWdlcy92aWRlby1hc3BlY3QtcmF0aW8uaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy92aWRl
b19sb29wX2Jhc2UuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEvMTZ4
MTYtZ3JlZW4ubXA0OiBBZGRlZC4KKwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgSURCVHJhbnNhY3Rpb24uZHVyYWJpbGl0
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRl
ZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2Vk
LWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy92aWRl
by1hc3BlY3QtcmF0aW8uaHRtbAppbmRleCA1NTE0M2VhZmY1Y2RkNDk4NzFjMGVhYmFiNDM1YjM5
ZjdhNDJlYmNkLi41M2NlYjgyZTVjYmQwNDlhOWZjMWYxMmU3MmQwOGE2ZWM3NWIyOTM2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
cmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRl
bnQtYW5kLWltYWdlcy92aWRlby1hc3BlY3QtcmF0aW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVs
ZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy92aWRlby1h
c3BlY3QtcmF0aW8uaHRtbApAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiB0ZXN0X2NvbXB1dGVk
X3N0eWxlKHdpZHRoLCBoZWlnaHQsIGV4cGVjdGVkKSB7CiAKIHQuc3RlcChmdW5jdGlvbigpIHsK
ICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lZCIpOwotICB2
aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhLzJ4Mi1ncmVlbicpOworICB2aWRlby5zcmMg
PSBnZXRWaWRlb1VSSSgnL21lZGlhLzE2eDE2LWdyZWVuJyk7CiAgIGFzc2VydF9yYXRpbyh2aWRl
bywgMi41KTsKIH0sICJjb250YWluOnNpemUgYXNwZWN0IHJhdGlvIik7CiAKQEAgLTM3LDcgKzM3
LDcgQEAgdC5zdGVwKGZ1bmN0aW9uKCkgewogICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInZpZGVvIik7CiAgIHZpZGVvLnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMjUwIik7CiAgIHZp
ZGVvLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOwotICB2aWRlby5zcmMgPSBnZXRWaWRl
b1VSSSgnL21lZGlhLzJ4Mi1ncmVlbicpOworICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21l
ZGlhLzE2eDE2LWdyZWVuJyk7CiAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwog
ICAvLyBWaWRlb3MgZGVmYXVsdCB0byBhIHNpemUgb2YgMzAweDE1MHB4IGFuZCBjYWxjdWxhdGUg
dGhlaXIgYXNwZWN0IHJhdGlvCiAgIC8vIGJhc2VkIG9uIHRoYXQgYmVmb3JlIHRoZSB2aWRlbyBp
cyBsb2FkZWQuIFNvIHRoaXMgc2hvdWxkIGJlIDIsIGlnbm9yaW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwKaW5kZXgg
OWI1ZDY5YjMxYTAzM2UyMjZmZmU0YWRhMWUxNTQyOTNmMzNlYzlhMS4uMTkwMzZlYWI5NmQzNTQ5
YTUyZDMzZmY4NjEyNDQ5OTdlOTAzY2YyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbApAQCAtMzMsNyArMzMsNyBA
QAogCiAgICAgICAgIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInNlZWtpbmciLCBzdGFydFRlc3Qs
IGZhbHNlKTsKICAgICAgICAgbWVkaWEubG9vcCA9IHRydWU7Ci0gICAgICAgIG1lZGlhLnNyYyA9
IGdldFZpZGVvVVJJKCIvbWVkaWEvMngyLWdyZWVuIikgKyAiPyIgKyBuZXcgRGF0ZSgpICsgTWF0
aC5yYW5kb20oKTsKKyAgICAgICAgbWVkaWEuc3JjID0gZ2V0VmlkZW9VUkkoIi9tZWRpYS8xNngx
Ni1ncmVlbiIpICsgIj8iICsgbmV3IERhdGUoKSArIE1hdGgucmFuZG9tKCk7CiAgICAgICAgIG1l
ZGlhLnBsYXkoKTsKICAgICA8L3NjcmlwdD4KICAgPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434711</attachid>
            <date>2021-07-31 19:43:27 -0700</date>
            <delta_ts>2021-08-02 08:11:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210731194326.patch</filename>
            <type>text/plain</type>
            <size>26948</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RhYmM1NTg2N2QwNTkx
YzJiMzJkZjJmMGRmZTJjZmIzMjVlNzFhNy4uOTlhZmVlOTE1YmU1NjU5MzM2ZmZiNDEyMWZhNTI5
MTNmNTc5MDU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA3LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbQorICAgICAgICBBVlBsYXll
ckl0ZW1WaWRlb091dHB1dC4gSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEKKyAgICAgICAgZm9yIHRoZSBjdXJyZW50IHRpbWUg
aXMgbm90IGF2YWlsYWJsZSwgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvCisgICAgICAgIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBp
cyBibG9ja2VkIGluIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0Cisg
ICAgICAgIHJlcXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2Nr
LgorCisgICAgICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRl
ID49IEhBVkVfQ1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUKKyAgICAgICAgQVZQbGF5ZXJM
YXllciBvciB0aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFp
bGFibGUgZnJhbWUuIFRoaXMKKyAgICAgICAgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRp
bmcgdG8gcGFpbnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQg
d2UKKyAgICAgICAgd2lsbCBhbHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yIHBhaW50
aW5nLCByZW1vdmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzCisgICAgICAgIGdlbmVy
YXRvciBjYWxsLgorCisgICAgICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVk
IHdoZW4gQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwKKyAg
ICAgICAgcmVnaXN0ZXIgd2l0aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90
aWZpY2F0aW9uIGFzIHNvb24gYXMgYW4gaW1hZ2UgaXMKKyAgICAgICAgYXZhaWxhYmxlLiBBbmQg
aW4gdGhlIGV4aXN0aW5nIGRlbGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0
aGUKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQg
b2NjdXJzLgorCisgICAgICAgIE5vIHRlc3RzIG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZs
YWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBhbmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbgorICAg
ICAgICBiZWhhdmlvci4KKworICAgICAgICBOb3RlLCBjaGFuZ2VzIGZyb20gbGFzdCBhdHRlbXB0
OgorCisgICAgICAgIEFWUGxheWVyTGF5ZXIgd2lsbCBmYWlsIHRvIG1vdmUgdG8gdGhlIC1yZWFk
eUZvckRpc3BsYXkgc3RhdGUgaWYgaXQncyBub3QgYXR0YWNoZWQgdG8gYQorICAgICAgICBsYXll
ciB0cmVlLCBzbyB3aGVuIHdlIHJlbW92ZSB0aGUgSFRNTE1lZGlhRWxlbWVudCBmcm9tIHRoZSBE
T00sIHdlIG11c3Qgc2VuZCBNZWRpYVBsYXllciBhCisgICAgICAgIGFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKCkgbm90aWZpY2F0aW9uLiBUaGlzIHdpbGwgY2F1c2UgdGhlCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgdG8gdGhyb3cgYXdheSBpdHMg
QVZQbGF5ZXJMYXllciwgYW5kIHdpbGwgbm90IGJsb2NrCisgICAgICAgIG1vdmluZyB0byBIQVZF
X0NVUlJFTlRfREFUQSB3YWl0aW5nIGZvciB0aGUgbGF5ZXIgdG8gYmVjb21lIHJlYWR5Rm9yRGlz
cGxheS4KKworICAgICAgICBXaGVuIHdlIHRocm93IGF3YXkgKG9yIGNyZWF0ZSkgdGhlIEFWUGxh
eWVyTGF5ZXIsIHdlIG11c3QgY29uZGl0aW9uYWxseSBjYWxsIHVwZGF0ZVN0YXRlcworICAgICAg
ICAoKSB0byByZWNhbGN1bGF0ZSB0aGUgcmVhZHlTdGF0ZTsgYnV0IGJlY2F1c2UgdXBkYXRlU3Rh
dGVzKCkgbWF5IHRyeSB0byBjcmVhdGUgb3IgZGVzdHJveQorICAgICAgICBhbiBBVlBsYXllckxh
eWVyLCB3ZSBtdXN0IGRvIHRoaXMgb24gYSB0YXNrIHRvIGF2b2lkIHJlLWVudHJhbmN5LiBBZG9w
dCB0aGVzZSBjaGFuZ2VzCisgICAgICAgIGluc2lkZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRiBhcyB3ZWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5k
ZXJpbmdDYW5CZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBy
ZXBhcmVGb3JSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyZW5kZXJpbmdNb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNjaGVkdWxlVXBkYXRlU3RhdGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3Rh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNv
bnRleHRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgc2V0UGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlQVZGUHVsbERlbGVn
YXRlIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6XSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKToKKwogMjAyMS0w
Ny0yOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDTWFrZV0gVXNlIGFuIGltcG9ydGVkIHRhcmdldCBmb3IgdGhlIGxpYmdjcnlwdCBsaWJy
YXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFhM2JkNjU4MGI3YWIzMjNmY2U4MjMzMWZkZTZkYzhiMDAxOTg2NjUu
LmUwZjRkMWI4NTQ1ZjAyMjMzMjc3NDJiNzFmNGNhYTliYjhmNDYyMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDctMzEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1
NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMzM2MjgwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBEcml2ZS1ieSBmaXg6IFBhc3NpbmcgdGhlIHdy
b25nIHZhbHVlIGRvd24gdG8gdGhlIEdQVSBwcm9jZXNzIHdoZW4gdGhlIGFjY2VsZXJhdGVkUmVu
ZGVyaW5nU3RhdGVDaGFuZ2VkKCkuCisgICAgICAgIFdlIHNob3VsZCBiZSBwYXNzaW5nIHRoZSBy
ZXN1bHRzIG9mIE1lZGlhUGxheWVyOjpyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkgd2hpY2gg
Y29tZXMgZG93biBmcm9tIEhUTUxNZWRpYUVsZW1lbnQsCisgICAgICAgIG5vdCBNZWRpYVBsYXll
cjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpLCB3aGljaCBjb21lcyB1cCBmcm9tIHRo
ZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorCiAyMDIxLTA3LTI5
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIGJ1bmRsZSBw
YXRoIG9mIGRvd25sZXZlbCBTYWZhcmkgaXMgd3JvbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDhhODA3ZDEyMjNkMDQyZTdmMmY0MDA4MmFlMDU3NjQwOTJl
YWYxMjkuLjY0ODA3ZDFjMDEwMmExZjE5YzRiZGRlNWEyNzFiOWQ3NzBmY2IyODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODE5LDYgKzgxOSw4IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VBZnRlckRldGFjaGVkVGFzaygpCiAgICAgaWYgKCFt
X3BsYXllcikKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wbGF5ZXItPmFjY2VsZXJhdGVkUmVu
ZGVyaW5nU3RhdGVDaGFuZ2VkKCk7CisKICAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0ID0gbV9w
bGF5ZXItPmV4dHJhTWVtb3J5Q29zdCgpOwogICAgIGlmIChleHRyYU1lbW9yeUNvc3QgPiBtX3Jl
cG9ydGVkRXh0cmFNZW1vcnlDb3N0KSB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gY29tbW9uVk0o
KTsKQEAgLTUwMDgsNiArNTAxMCw5IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkKICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAorICAgIGlmICghbV9pbkFjdGl2ZURvY3VtZW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICBhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgcmV0
dXJuIGlzPFJlbmRlclZpZGVvPihyZW5kZXJlcikKICAgICAgICAgJiYgZG93bmNhc3Q8UmVuZGVy
VmlkZW8+KCpyZW5kZXJlcikudmlldygpLmNvbXBvc2l0b3IoKS5jYW5BY2NlbGVyYXRlVmlkZW9S
ZW5kZXJpbmcoZG93bmNhc3Q8UmVuZGVyVmlkZW8+KCpyZW5kZXJlcikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBi
YmQ1NjBhZDRjYTAwMDkxYWMxOWJkM2ZlZjlhZDJmY2JlZTAwMzE2Li5iYzBlMzNjMDI5MTU0OTJl
ZDA5MjE1ZWRhNDFlY2FiZGIwZjRmYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtMTI1LDExICsxMjUsMTMgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJpbmco
KQogICAgIGlmIChwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nTm9uZSkKICAgICAgICAg
cHJlZmVycmVkTW9kZSA9IE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OwogCi0gICAgaWYgKGN1cnJl
bnRNb2RlID09IHByZWZlcnJlZE1vZGUgJiYgY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdO
b25lKQorICAgIGlmIChjdXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQotICAgICAg
ICB0ZWFyRG93blZpZGVvUmVuZGVyaW5nKCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAicHJlZmVycmVkTW9kZTogIiwgcHJlZmVycmVkTW9kZSwgIiwgY3VycmVudE1vZGU6ICIsIGN1
cnJlbnRNb2RlKTsKKworICAgIGlmIChjdXJyZW50TW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5
ZXIpCisgICAgICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7CiAKICAgICBzd2l0Y2ggKHByZWZlcnJl
ZE1vZGUpIHsKICAgICBjYXNlIE1lZGlhUmVuZGVyaW5nTm9uZToKQEAgLTE0MSwxMCArMTQzLDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJp
bmcoKQogICAgICAgICBjcmVhdGVWaWRlb0xheWVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
LQotICAgIC8vIElmIHVzaW5nIGEgbW92aWUgbGF5ZXIsIGluZm9ybSB0aGUgY2xpZW50IHNvIHRo
ZSBjb21wb3NpdGluZyB0cmVlIGlzIHVwZGF0ZWQuCi0gICAgaWYgKGN1cnJlbnRNb2RlID09IE1l
ZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9M
YXllcikKLSAgICAgICAgbV9wbGF5ZXItPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp0ZWFyRG93blZpZGVvUmVuZGVyaW5n
KCkKQEAgLTQ0Myw5ICs0NDEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6cHJlcGFyZUZvclJlbmRlcmluZygpCiAgICAgbV9pc0FsbG93ZWRUb1JlbmRlciA9IHRydWU7
CiAKICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7Ci0KLSAgICBpZiAoY3VycmVudFJlbmRlcmlu
Z01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkUmVuZGVyaW5nTW9k
ZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKLSAgICAgICAgbV9wbGF5ZXItPnJlbmRlcmlu
Z01vZGVDaGFuZ2VkKCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdApAQCAtNDcxLDYgKzQ2NiwyMSBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0UmVzb2x2ZWRVUkwoVVJMJiYgcmVzb2x2
ZWRVUkwpCiAgICAgbV9yZXNvbHZlZE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9y
ZXNvbHZlZFVSTCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpy
ZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZGVsYXlpbmdSZWFkeVN0YXRlICYm
IG1fY2FjaGVkSGFzVmlkZW8gJiYgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpKQorICAgICAgICBz
Y2hlZHVsZVVwZGF0ZVN0YXRlcygpOworICAgIG1fcGxheWVyLT5yZW5kZXJpbmdNb2RlQ2hhbmdl
ZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2NoZWR1bGVV
cGRhdGVTdGF0ZXMoKQoreworICAgIHF1ZXVlVGFza09uRXZlbnRMb29wKFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3
ZWFrVGhpcy0+dXBkYXRlU3RhdGVzKCk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjp1cGRhdGVTdGF0ZXMoKQogewogICAgIGlmIChtX2lnbm9yZUxv
YWRTdGF0ZUNoYW5nZXMpCkBAIC01NDMsMTEgKzU1MywyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgfQogICAgIH0KIAorICAg
IC8vIERvIG5vdCBhZHZhbmNlIHRvIEhhdmVDdXJyZW50RGF0YSB1bmxlc3MgdGhlcmUgaXMgYSBk
ZWNvZGVkIGZyYW1lIGF2YWlsYWJsZSBmb3IgZGlzcGxheQorICAgIGlmIChuZXdSZWFkeVN0YXRl
ID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEKKyAgICAgICAgJiYg
bV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YQor
ICAgICAgICAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmICFoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkp
IHsKKyAgICAgICAgbmV3UmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZl
TWV0YWRhdGE7CisgICAgICAgIG1fZGVsYXlpbmdSZWFkeVN0YXRlID0gdHJ1ZTsKKyAgICAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIWhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSwgbG93
ZXJpbmcgcmVhZHlTdGF0ZSB0byAiLCBuZXdSZWFkeVN0YXRlKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbV9kZWxheWluZ1JlYWR5U3RhdGUgPSBmYWxzZTsKKwogICAgIGlmIChpc1JlYWR5Rm9yVmlk
ZW9TZXR1cCgpICYmIGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgIT0gcHJlZmVycmVkUmVuZGVyaW5n
TW9kZSgpKQogICAgICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKICAgICBpZiAoIW1faGF2
ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lICYmIG1fY2FjaGVkSGFzVmlkZW8gJiYgaGFzQXZhaWxh
YmxlVmlkZW9GcmFtZSgpKSB7Ci0gICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKQorICAgICAgICBpZiAobmV3UmVhZHlTdGF0
ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpCiAgICAgICAgICAg
ICBuZXdSZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0
YTsKICAgICAgICAgbV9oYXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgPSB0cnVlOwogICAgICAg
ICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNDgyMjhiYWYz
YjAyMmJmYTM0MGU0YTFmYzQwZmIxZTgyOTM0NjY2Yy4uYWNiZjRjZTNhOTMyOWYyMmMxYmFmYmQ5
MDA3N2M2Mjc1ZWQxYThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMjcxLDYgKzI3MSw3IEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHN0YXRpY01JTUVUeXBlTGlzdCgpOwogCiBwcm90ZWN0ZWQ6CisgICAgdm9pZCBzY2hlZHVsZVVw
ZGF0ZVN0YXRlcygpOwogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAKICAgICB2b2lkIHNldEhh
c1ZpZGVvKGJvb2wpOwpAQCAtMzIwLDYgKzMyMSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dFJlc29sdmVkVVJMKFVSTCYmKTsKICAgICBjb25zdCBVUkwmIHJlc29sdmVkVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNvbHZlZFVSTDsgfQogCisgICAgdm9pZCByZW5kZXJpbmdNb2RlQ2hhbmdl
ZCgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKIApAQCAtMzY4LDYg
KzM3MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NoYXJhY3RlcmlzdGljc0NoYW5nZWQ7CiAg
ICAgYm9vbCBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW87CiAgICAgYm9vbCBtX3NlZWtpbmc7
CisgICAgYm9vbCBtX2RlbGF5aW5nUmVhZHlTdGF0ZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCAxNzM5ZjUyNzNkZmM0MDg4MmNh
OTkxNmM1MDBjZDMzM2IyNDllNjJlLi4wZjY2OTUyMmE4NmZlYTA3NWRlYmZlOTI4MGJiZWRlODU3
NWI5MjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTQ2MCw2ICs0NjAsOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGVWaWRlb0xheWVyKCkKIAogICAgIGlm
IChtX2F2ZldyYXBwZXIpCiAgICAgICAgIG1fYXZmV3JhcHBlci0+Y3JlYXRlQVZDRlZpZGVvTGF5
ZXIoKTsKKworICAgIHJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKCkKQEAgLTQ2OCw2ICs0
NzAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpkZXN0cm95Vmlk
ZW9MYXllcigpCiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OmRlc3Ryb3lWaWRlb0xheWVyKCVwKSAtIGRlc3Ryb3lpbmcgJXAiLCB0aGlzLCB2aWRlb0xh
eWVyKG1fYXZmV3JhcHBlcikpOwogICAgIGlmIChtX2F2ZldyYXBwZXIpCiAgICAgICAgIG1fYXZm
V3JhcHBlci0+ZGVzdHJveVZpZGVvTGF5ZXIoKTsKKworICAgIHJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6Omhhc0F2YWls
YWJsZVZpZGVvRnJhbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZhODVjODQ5
ZGVkMTkzMmQ1ZTZmODU2YzE4NTVhYjAxMTQ5ZmJkZWUuLmVjZTJhMzFkOTgyNDI1YmY1NWQyNzk2
YzJjYTk0ZjMxYzdkMDMzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTExOCw2ICsxMTgs
OCBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IGZp
bmFsOwogCisgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKIHByaXZhdGU6
CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNo
ZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDRhNGE2
ZGMyNmJlYmZlYzVlMmU2YWZkMmIwOGQwNzQ1YjE4NTQxNmMuLmE1ZDhkMGU2YTFhMDk3MjMzNjdm
ZTg2ZDQxODQ3MzNkZjdjYmE2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjcsNyAr
NjcsNiBAQAogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNv
cmVOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIgotI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRJbWFnZUdlbmVyYXRvci5oPgogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWQXNzZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxl
Y3Rpb25Hcm91cC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWV0YWRhdGFJdGVtLmg+CkBA
IC0xOTYsNiArMTk1LDcgQEAgZW51bSBNZWRpYVBsYXllckFWRm91bmRhdGlvbk9ic2VydmF0aW9u
Q29udGV4dCB7CiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZQdWxsRGVsZWdhdGUgOiBOU09iamVjdDxB
VlBsYXllckl0ZW1PdXRwdXRQdWxsRGVsZWdhdGU+IHsKICAgICBCaW5hcnlTZW1hcGhvcmUgbV9z
ZW1hcGhvcmU7CiB9CistICh2b2lkKXNldFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50OwogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxs
Q2hhbmdlOihBVlBsYXllckl0ZW1PdXRwdXQgKilzZW5kZXI7CiAtICh2b2lkKW91dHB1dFNlcXVl
bmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtT3V0cHV0ICopb3V0cHV0OwogCkBAIC01NjEsNyAr
NTYxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNMYXll
clJlbmRlcmVyKCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvT3V0
cHV0IHx8IG1faW1hZ2VHZW5lcmF0b3I7CisgICAgcmV0dXJuIG1fdmlkZW9PdXRwdXQ7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQ29udGV4dFZp
ZGVvUmVuZGVyZXIoKQpAQCAtNTY5LDM1ICs1NjksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKICAgICBjcmVh
dGVWaWRlb091dHB1dCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKLXsKLSAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSKTsKLQotICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1faW1hZ2VHZW5lcmF0b3IgPSBbUEFMOjpnZXRBVkFzc2V0SW1hZ2VH
ZW5lcmF0b3JDbGFzcygpIGFzc2V0SW1hZ2VHZW5lcmF0b3JXaXRoQXNzZXQ6bV9hdkFzc2V0Lmdl
dCgpXTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFwZXJ0dXJlTW9kZTpBVkFz
c2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJlXTsKLSAgICBbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJlZmVycmVkVHJhY2tUcmFuc2Zvcm06WUVTXTsK
LSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVm
b3JlOlBBTDo6a0NNVGltZVplcm9dOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJl
cXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJvXTsKLX0KLQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVu
ZGVyZXIoKQogewogICAgIGRlc3Ryb3lWaWRlb091dHB1dCgpOwotICAgIGRlc3Ryb3lJbWFnZUdl
bmVyYXRvcigpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpCi17Ci0gICAgaWYgKCFtX2ltYWdlR2VuZXJhdG9yKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLQotICAgIG1f
aW1hZ2VHZW5lcmF0b3IgPSAwOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQpAQCAtNjE5LDcgKzU5Myw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXllcigpCiAgICAg
ICAgIGlmICghbV92aWRlb091dHB1dCkKICAgICAgICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7
CiAKLSAgICAgICAgcGxheWVyKCktPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CisgICAgICAgIHJl
bmRlcmluZ01vZGVDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAKQEAgLTY1OCw2ICs2MzIsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb0xheWVy
KCkKICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95VmlkZW9MYXllcigpOwogCiAg
ICAgbV92aWRlb0xheWVyID0gbmlsOworCisgICAgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0K
IAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN0YXJ0
RGF0ZSgpIGNvbnN0CkBAIC0xODEzLDggKzE3ODksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dAogICAgIC8vIHRoZSB2aWRlbyBvdXRwdXQsIHRvby4KICAgICBpZiAodmlkZW9PdXRwdXRIYXNB
dmFpbGFibGVGcmFtZSgpIHx8IChtX3ZpZGVvT3V0cHV0ICYmIG1fbGFzdFBpeGVsQnVmZmVyKSkK
ICAgICAgICAgcGFpbnRXaXRoVmlkZW9PdXRwdXQoY29udGV4dCwgcmVjdCk7Ci0gICAgZWxzZQot
ICAgICAgICBwYWludFdpdGhJbWFnZUdlbmVyYXRvcihjb250ZXh0LCByZWN0KTsKIAogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CkBA
IC0xODM4LDM4ICsxODEyLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEYKICAgICBwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFnZUdlbmVyYXRvcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSKTsKLQotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGNy
ZWF0ZUltYWdlRm9yVGltZUluUmVjdChjdXJyZW50VGltZSgpLCByZWN0KTsKLSAgICBpZiAoaW1h
Z2UpIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRl
eHQpOwotICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0
LmhlaWdodCgpKTsKLSAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMS4wZiwgLTEuMGYp
KTsKLSAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9s
YXRpb25RdWFsaXR5OjpMb3cpOwotICAgICAgICBJbnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgw
LCAwKSwgSW50U2l6ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKLSAgICAgICAgQ0dD
b250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwg
MCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSksIGltYWdlLmdldCgpKTsK
LSAgICB9Ci19Ci0KLVJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlY3QoZmxvYXQgdGltZSwgY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotewotICAgIGlmICghbV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAg
Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKTsKLSAgICBBU1NFUlQobV9pbWFnZUdlbmVyYXRvcik7Ci0K
LSAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0KLSAgICBb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkp
XTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdl
R2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6Q01UaW1lTWFrZVdpdGhTZWNv
bmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7Ci0gICAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNw
YWNlKHJhd0ltYWdlLmdldCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpKSk7Ci0KLSAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAiY3JlYXRpbmcgaW1hZ2UgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6
bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKLQotICAgIHJldHVybiBpbWFnZTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMp
CiB7CiAgICAgc3VwcG9ydGVkVHlwZXMgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9u
KCkuc3VwcG9ydGVkVHlwZXMoKTsKQEAgLTI0NDAsMTEgKzIzODIsMTggQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCgpCiAgICAgfQog
CiAgICAgbV92aWRlb091dHB1dERlbGVnYXRlID0gYWRvcHROUyhbW1dlYkNvcmVBVkZQdWxsRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbbV92aWRlb091dHB1dERlbGVnYXRlIHNldFBhcmVu
dDoqdGhpc107CiAgICAgW21fdmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6bV92aWRlb091dHB1dERl
bGVnYXRlLmdldCgpIHF1ZXVlOmdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCldOworICAgIFttX3Zp
ZGVvT3V0cHV0IHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZVdpdGhBZHZhbmNl
SW50ZXJ2YWw6MF07CiAKICAgICBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgYWRkT3V0cHV0Om1fdmlk
ZW9PdXRwdXQuZ2V0KCldOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKQoreworICAgIHVwZGF0ZVN0YXRlcygp
OworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lW
aWRlb091dHB1dCgpCiB7CiAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQpAQCAtMjUzOSwxMiArMjQ4
OCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRo
VmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjCiAKICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0
IHsgRmxvYXRQb2ludDo6emVybygpLCBtX2xhc3RJbWFnZS0+c2l6ZSgpIH07CiAgICAgY29udGV4
dC5kcmF3TmF0aXZlSW1hZ2UoKm1fbGFzdEltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRS
ZWN0LCBpbWFnZVJlY3QpOwotCi0gICAgLy8gSWYgd2UgaGF2ZSBjcmVhdGVkIGFuIEFWQXNzZXRJ
bWFnZUdlbmVyYXRvciBpbiB0aGUgcGFzdCBkdWUgdG8gbV92aWRlb091dHB1dCBub3QgaGF2aW5n
IGFuIGF2YWlsYWJsZQotICAgIC8vIHZpZGVvIGZyYW1lLCBkZXN0cm95IGl0IG5vdyB0aGF0IGl0
IGlzIG5vIGxvbmdlciBuZWVkZWQuCi0gICAgaWYgKG1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAg
IGRlc3Ryb3lJbWFnZUdlbmVyYXRvcigpOwotCiB9CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1
cnJlbnRUaW1lKCkKQEAgLTM4OTksMTQgKzM4NDIsMjUgQEAgTlNBcnJheSogcGxheWVyS1ZPUHJv
cGVydGllcygpCiAKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFdlYkNvcmVBVkZQdWxsRGVsZWdh
dGUKK0BpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIHsKKyAgICBXZWFrUHRy
PFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IF9wYXJlbnQ7Cit9
CiAKIEBzeW50aGVzaXplIHNlbWFwaG9yZSA9IG1fc2VtYXBob3JlOwogCistICh2b2lkKXNldFBh
cmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyYpcGFyZW50
Cit7CisgICAgX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBhcmVudCk7Cit9CisKIC0gKHZvaWQpb3V0
cHV0TWVkaWFEYXRhV2lsbENoYW5nZTooQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRwdXQK
IHsKICAgICBVTlVTRURfUEFSQU0ob3V0cHV0KTsKICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsK
KyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3BhcmVudCA9IF9wYXJlbnRdIHsKKyAgICAg
ICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAgIHBhcmVudC0+b3V0cHV0TWVkaWFEYXRhV2lsbENo
YW5nZSgpOworICAgIH0pOwogfQogCiAtICh2b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDoo
QVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCBkOWM1OGRlOGY1N2IwNGE5YmU0NjE2M2M1ZDY1Mzk4ZTliNDc1ZTYzLi41NmI3
MGRmZTEzYmJiYzM5YjYzZTFhYzNmZjEyYmVhMjhhZTZlOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtYWtlUmVmUHRyKG1fcGxheWVyLmdldCgpKSkKLSAgICAg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkFj
Y2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpKSwgbV9pZCk7CisgICAgICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZChwbGF5ZXItPnJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKSksIG1faWQpOwogfQogCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDRkYTFiYTU1MDg0N2FlZmI4ZDA0YzUwNzAxNDY3YjNiYzZiNDIzM2MuLmIxYzJl
NTA2MmRmYTc4OTNjNzExMWQ1Mzc3Y2IwNWJhNTZhNmM2MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTI5ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1cHBvcnQgZm9yIEFW
QXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIDJ4Mi1ncmVlbi5tcDQgZmlsZSBmYWlscyB0byBkZWNvZGUgYXMgaXRz
IG5hdHVyYWwgc2l6ZSBpcyB0b28gc21hbGwgZm9yIHRoZSBzeXN0ZW0gZGVjb2RlciB0byBoYW5k
bGUuIFJlcGxhY2Ugd2l0aAorICAgICAgICBhIG1lZGlhIGZpbGUgb2YgbW9yZSByZWFzb25hYmxl
IHNpemUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVw
bGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2Vz
L3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3Bf
YmFzZS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8xNngxNi1ncmVl
bi5tcDQ6IEFkZGVkLgorCiAyMDIxLTA3LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBJREJUcmFuc2FjdGlvbi5kdXJhYmlsaXR5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
cmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRl
bnQtYW5kLWltYWdlcy92aWRlby1hc3BlY3QtcmF0aW8uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVu
dHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL3ZpZGVvLWFzcGVj
dC1yYXRpby5odG1sCmluZGV4IDU1MTQzZWFmZjVjZGQ0OTg3MWMwZWFiYWI0MzViMzlmN2E0MmVi
Y2QuLjUzY2ViODJlNWNiZDA0OWE5ZmMxZjEyZTcyZDA4YTZlYzc1YjI5MzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJp
bmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQt
aW1hZ2VzL3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMv
YXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL3ZpZGVvLWFzcGVjdC1y
YXRpby5odG1sCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHRlc3RfY29tcHV0ZWRfc3R5bGUo
d2lkdGgsIGhlaWdodCwgZXhwZWN0ZWQpIHsKIAogdC5zdGVwKGZ1bmN0aW9uKCkgewogICB2YXIg
dmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVkIik7Ci0gIHZpZGVvLnNy
YyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvMngyLWdyZWVuJyk7CisgIHZpZGVvLnNyYyA9IGdldFZp
ZGVvVVJJKCcvbWVkaWEvMTZ4MTYtZ3JlZW4nKTsKICAgYXNzZXJ0X3JhdGlvKHZpZGVvLCAyLjUp
OwogfSwgImNvbnRhaW46c2l6ZSBhc3BlY3QgcmF0aW8iKTsKIApAQCAtMzcsNyArMzcsNyBAQCB0
LnN0ZXAoZnVuY3Rpb24oKSB7CiAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlk
ZW8iKTsKICAgdmlkZW8uc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIyNTAiKTsKICAgdmlkZW8uc2V0
QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7Ci0gIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcv
bWVkaWEvMngyLWdyZWVuJyk7CisgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvMTZ4
MTYtZ3JlZW4nKTsKICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CiAgIC8vIFZp
ZGVvcyBkZWZhdWx0IHRvIGEgc2l6ZSBvZiAzMDB4MTUwcHggYW5kIGNhbGN1bGF0ZSB0aGVpciBh
c3BlY3QgcmF0aW8KICAgLy8gYmFzZWQgb24gdGhhdCBiZWZvcmUgdGhlIHZpZGVvIGlzIGxvYWRl
ZC4gU28gdGhpcyBzaG91bGQgYmUgMiwgaWdub3JpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbAppbmRleCA5YjVkNjli
MzFhMDMzZTIyNmZmZTRhZGExZTE1NDI5M2YzM2VjOWExLi4xOTAzNmVhYjk2ZDM1NDlhNTJkMzNm
Zjg2MTI0NDk5N2U5MDNjZjJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sCkBAIC0zMyw3ICszMyw3IEBACiAKICAg
ICAgICAgbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigic2Vla2luZyIsIHN0YXJ0VGVzdCwgZmFsc2Up
OwogICAgICAgICBtZWRpYS5sb29wID0gdHJ1ZTsKLSAgICAgICAgbWVkaWEuc3JjID0gZ2V0Vmlk
ZW9VUkkoIi9tZWRpYS8yeDItZ3JlZW4iKSArICI/IiArIG5ldyBEYXRlKCkgKyBNYXRoLnJhbmRv
bSgpOworICAgICAgICBtZWRpYS5zcmMgPSBnZXRWaWRlb1VSSSgiL21lZGlhLzE2eDE2LWdyZWVu
IikgKyAiPyIgKyBuZXcgRGF0ZSgpICsgTWF0aC5yYW5kb20oKTsKICAgICAgICAgbWVkaWEucGxh
eSgpOwogICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLzE2eDE2LWdyZWVuLm1wNCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEvMTZ4MTYtZ3Jl
ZW4ubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM0MTdjOGU0ODg0YjgzMDliNTg2N2QxMTFkOTRjMzg0MjI2NjVl
NTYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyOTEKemNtZUhLTz11KVY2dDJtaTU/c2gzOy1W
MnNVMih6OHE8Yj5TQ2MlYSpGJkpiUXFPeXlLK1NZV31XU1olfWJYNnVaCnpJUiQ/fVotTmpuMFRv
MTgqIXZ6LSRSVVd9I29SV3E3WkxuSCgxWUZyal5GRV56bH5XNUJDTHB5UktOR1dfZnokJQp6VWlF
WXNXNHhsOXY4U1NkdT5uUkxxYlRaKjhOPy0lRj9NZXlrJj59e3RfN35wdCl0YV9Ibl8pZkFIJXtL
RHtWNzIKemJtYCpkPD58dXdkfH5Gd3NwOz47b0kzZ0c5Wn5hI0JnM3VNP3ljbj9LbVlEPDw7S3FC
T0A4PjsmJVpRXnZuOEpBCnpQTHhQKW1nWFI/NmFZPEtVUnsxQlUqWj85RjJVd1gyWnA2Nlp1K3ZL
ZENAU1leRl9tKTF6NlFPVVlNSE4rfXRlRwp6SnklQSkybiRpTkhicj8wUlVQPjdpREs8VnA8M1hN
Qz0xNmpjX0omO0c8Umoka0RRdWlFKkp8MjdvcVQqTj9KeF4KemRja096PH0/cWFSaDEye0hwLUFM
QEtga3dpbD8ycG1SVD9tZ2E7NDJoSURQcFhkPVErTTdTbWBFWH1EVlE2T3hECnpucGBLK19kTnde
dH0qOTI4aUtQUFNPJTZMK15yfi1SPyhhXk88b2E3K3AoJjdGP25QTyk/KylXUkZ1P0t6UX1ibwp6
Sz9FaThxb15qVFEweU0yZTl5c0pJKUs1JEIlUTxZMC08UmdVWmBjXzNwZkVVYHh9WDkrRDtWMkxQ
S30zTUxIMikKemghayo0MW8+MUY1bERzMkQlKWBydmdjWXckaWZ2ZFJaK0lmbz1gTjJtJm1sUFAz
ZiZ3YnM0ck9tWjd+QyNqc3t6CnpqTEAyRkJEWW5YRzF7VVhjcCs0LTkyclZ5THQ3PC1tWUUzSihu
UDglIVZ8fnRtUF9gO3Y3RHNCZ0VJRCYlN1M3UQp6cndheU9yKCFJbEZiZ3JKIzM+Z0lZanolaChs
V002Kz4zRVlYYjdBa2EqMWBFS2I8RFM0UCljLT9Lanp6dD4xNWMKenxMZiM/P3tEM0JTQVk3JkxG
PyVHe2E0O05iezl8SWBoQX1ObEZMWDFlZXsxcGVGeEpPfDhwblF0P2NkIXw2SSU2CnotOCNDbkdk
NFVMTHtTfHQ0TF8oP1VHUDJ7YH5rYD8lUTU9dihRT0xnV0JPdnheQ1cyeUtjWip3V357O1p2YVkz
Ygp6MF8jI0kraW4tWjNATztMYlBVSnojU1doRmJKRW9jOylMey1aa3M2TGIkbyg2bSNzUFhSXldP
OTchVGF6d09AYWwKenU/RypYPzVDMFdzX1E1MTk4NShVVk1pd1owKDVzcGdzdn5pQ3VpVzVVNGJ5
Qmc0PmR3YjJFSXgjY3UpeWZAbmVhCnpaNnJRIyVmQmdJXzk0SGZ3Q1dyTmBLO3BXaVdXKmxkUFcw
bWowOVJMWGlfU2QzVEFgYit1SU1wWjN6NUs/UzZ2VAp6KEt8Rm9mYUNfQ2E7NE1GQXJ0QXQqcHpL
PjxpX1NPYntfTFA7NiFBbklYazI2cFghdEYrYWprbmpldmlSYWQ1Jm8KenRGI2xme1YwY2xtNDFm
d1B5OXRRa1JRP2NqUCpUeHlPNHAkXmhIOHhjaFZoVmNXUTwjWnlLQlg7TGdvWk00fHo5CnpRWnZ4
azhjbyVxdE12OE8qOV8wTG5fO30zSEFEWTBQdGcjJChSTT84YTt6YkM9IyNyV1hAQVpQOGJqR0Q1
TlF6bwp6KigxWXkmJEYhLTZhIWg4YXhOUWZlWndBRDFIWFJ3Pks/amxrUFhxfSVjb1gkVWQqd1A+
UUNRKF8yP2VfJDZ9I2sKemFMUHt1TjhEfHpIa097P0x8OzJ+ZF4+ISsqRnBubWhjcGtjWm1ZbkxU
dj5VOylkS3ZiSyZHNnFOQlp3Mmp4UH4kCmxPeExHTmNgdipDazYrVWZfMT9xeXItWUtFODgzLT9X
IyZSKlgwfjcmI3ZnUCtFZ3R7PwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434751</attachid>
            <date>2021-08-02 08:11:27 -0700</date>
            <delta_ts>2021-08-04 12:35:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210802081126.patch</filename>
            <type>text/plain</type>
            <size>27085</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNjOGZiY2Y1OTU2MmM1
YmJlYWUwNjg3NTVjOGU1MGM5NDU0YTJlMi4uNmY4ZDRmNWY0MTJiNDA4NjIxNzUwNjNkYjc1ODk0
M2E0ODVjMGY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA3LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBpcyB1c2VkIHdoZW4g
dGhlcmUgaXMgbm90IHlldCBhbiBhdmFpbGFibGUgaW1hZ2UgZnJvbQorICAgICAgICBBVlBsYXll
ckl0ZW1WaWRlb091dHB1dC4gSG93ZXZlciwgQVZBc3NldEltYWdlR2VuZXJhdG9yIGlzIGEgc3lu
Y2hyb25vdXMgQVBJIGNhbGw7IGlmIGRhdGEKKyAgICAgICAgZm9yIHRoZSBjdXJyZW50IHRpbWUg
aXMgbm90IGF2YWlsYWJsZSwgdGhlIGdlbmVyYXRvciB3aWxsIGNhdXNlIGEgcmVxdWVzdCBmb3Ig
dGhhdCBkYXRhIHRvCisgICAgICAgIGJlIGlzc3VlZCwgYW5kIGlmIHRoZSBtYWluIHRocmVhZCBp
cyBibG9ja2VkIGluIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgZ2VuZXJhdG9yLCB0aGF0Cisg
ICAgICAgIHJlcXVlc3QgY2FuIG5ldmVyIGJlIGNvbXBsZXRlZCwgY2F1c2luZyBhIGRlYWRsb2Nr
LgorCisgICAgICAgIEluc3RlYWQsIGFsd2F5cyBibG9jayBtb3ZpbmcgdG8gYSByZWFkeVN0YXRl
ID49IEhBVkVfQ1VSUkVOVF9EQVRBIHVudGlsIGVpdGhlciB0aGUKKyAgICAgICAgQVZQbGF5ZXJM
YXllciBvciB0aGUgQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgcmVwb3J0IGhhdmluZyBhbiBhdmFp
bGFibGUgZnJhbWUuIFRoaXMKKyAgICAgICAgcHJldmVudHMgY2xpZW50cyBmcm9tIGF0dGVtcHRp
bmcgdG8gcGFpbnQgdW50aWwgYSBmcmFtZSBpcyBhdmFpbGFibGUsIGFuZCBlbnN1cmVzIHRoYXQg
d2UKKyAgICAgICAgd2lsbCBhbHdheXMgaGF2ZSBhbiBhdmFpbGFibGUgZnJhbWUgZm9yIHBhaW50
aW5nLCByZW1vdmluZyB0aGUgbmVlZCBmb3IgdGhlIHN5bmNocm9ub3VzCisgICAgICAgIGdlbmVy
YXRvciBjYWxsLgorCisgICAgICAgIFRvIGVuc3VyZSB0aGUgcmVhZHlTdGF0ZSBpcyB1cGRhdGVk
IHdoZW4gQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgaGFzIGFuIGF2YWlsYWJsZSBpbWFnZSwKKyAg
ICAgICAgcmVnaXN0ZXIgd2l0aCB0aGUgb3V0cHV0IGF0IGNyZWF0aW9uIHRpbWUgZm9yIGEgbm90
aWZpY2F0aW9uIGFzIHNvb24gYXMgYW4gaW1hZ2UgaXMKKyAgICAgICAgYXZhaWxhYmxlLiBBbmQg
aW4gdGhlIGV4aXN0aW5nIGRlbGVnYXRlIG9iamVjdCwgc2VuZCBhIG1lc3NhZ2UgYmFjayB0byB0
aGUKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyB3aGVuIHRoYXQg
b2NjdXJzLgorCisgICAgICAgIE5vIHRlc3RzIG5lZWRlZDsgdGhpcyBzaG91bGQgcmVkdWNlIGZs
YWtpbmVzcyBvZiBleGlzdGluZyB0ZXN0cyBhbmQgY2F1c2Ugbm8gcmVncmVzc2lvbiBpbgorICAg
ICAgICBiZWhhdmlvci4KKworICAgICAgICBOb3RlLCBjaGFuZ2VzIGZyb20gbGFzdCBhdHRlbXB0
OgorCisgICAgICAgIEFWUGxheWVyTGF5ZXIgd2lsbCBmYWlsIHRvIG1vdmUgdG8gdGhlIC1yZWFk
eUZvckRpc3BsYXkgc3RhdGUgaWYgaXQncyBub3QgYXR0YWNoZWQgdG8gYQorICAgICAgICBsYXll
ciB0cmVlLCBzbyB3aGVuIHdlIHJlbW92ZSB0aGUgSFRNTE1lZGlhRWxlbWVudCBmcm9tIHRoZSBE
T00sIHdlIG11c3Qgc2VuZCBNZWRpYVBsYXllciBhCisgICAgICAgIGFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKCkgbm90aWZpY2F0aW9uLiBUaGlzIHdpbGwgY2F1c2UgdGhlCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgdG8gdGhyb3cgYXdheSBpdHMg
QVZQbGF5ZXJMYXllciwgYW5kIHdpbGwgbm90IGJsb2NrCisgICAgICAgIG1vdmluZyB0byBIQVZF
X0NVUlJFTlRfREFUQSB3YWl0aW5nIGZvciB0aGUgbGF5ZXIgdG8gYmVjb21lIHJlYWR5Rm9yRGlz
cGxheS4KKworICAgICAgICBXaGVuIHdlIHRocm93IGF3YXkgKG9yIGNyZWF0ZSkgdGhlIEFWUGxh
eWVyTGF5ZXIsIHdlIG11c3QgY29uZGl0aW9uYWxseSBjYWxsIHVwZGF0ZVN0YXRlcworICAgICAg
ICAoKSB0byByZWNhbGN1bGF0ZSB0aGUgcmVhZHlTdGF0ZTsgYnV0IGJlY2F1c2UgdXBkYXRlU3Rh
dGVzKCkgbWF5IHRyeSB0byBjcmVhdGUgb3IgZGVzdHJveQorICAgICAgICBhbiBBVlBsYXllckxh
eWVyLCB3ZSBtdXN0IGRvIHRoaXMgb24gYSB0YXNrIHRvIGF2b2lkIHJlLWVudHJhbmN5LiBBZG9w
dCB0aGVzZSBjaGFuZ2VzCisgICAgICAgIGluc2lkZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRiBhcyB3ZWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlQWZ0ZXJEZXRhY2hlZFRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5k
ZXJpbmdDYW5CZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBy
ZXBhcmVGb3JSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyZW5kZXJpbmdNb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNjaGVkdWxlVXBkYXRlU3RhdGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3Rh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNv
bnRleHRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZQ
dWxsRGVsZWdhdGUgc2V0UGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlQVZGUHVsbERlbGVn
YXRlIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6XSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95SW1hZ2VHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKToKKwogMjAyMS0w
OC0wMiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGZvciBbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgbGluZVJlY3RzQW5kVGV4dF0g
dG8gcHJvcGVybHkgaGFuZGxlIHJlcGxhY2VtZW50IG5vZGVzIGFuZCBTVkcgdGV4dC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNzlkYjc1NjRmMzcyOTc2NDQ0MWNlZTE3ZDA5MGIxY2I0MzIwODM1OC4uYjExMzM4Mjlm
MTUxODUwMmVmYTZmYjU5YmEwYWU4MjU5Yzg3MzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAyMS0wNy0zMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIFJlbW92ZSBzdXBwb3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODEzMzYyODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogUGFzc2luZyB0aGUgd3JvbmcgdmFsdWUg
ZG93biB0byB0aGUgR1BVIHByb2Nlc3Mgd2hlbiB0aGUgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQoKS4KKyAgICAgICAgV2Ugc2hvdWxkIGJlIHBhc3NpbmcgdGhlIHJlc3VsdHMgb2Yg
TWVkaWFQbGF5ZXI6OnJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKSB3aGljaCBjb21lcyBkb3du
IGZyb20gSFRNTE1lZGlhRWxlbWVudCwKKyAgICAgICAgbm90IE1lZGlhUGxheWVyOjpzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCksIHdoaWNoIGNvbWVzIHVwIGZyb20gdGhlIEdQVSBwcm9j
ZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjph
Y2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCk6CisKIDIwMjEtMDgtMDIgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mtc2Nyb2xsLXNu
YXBdIENvbnNpZGVyIGFsbCBzbmFwIGFyZWFzIGF0IGEgZ2l2ZW4gc25hcCBvZmZzZXQgd2hlbiBz
bmFwcGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMGE0
M2ZlY2QxZWVjZWI2MmRlOTE4ODY4NjZkOTUwOGM3NWU2ZTdkYS4uMTE5ZGI0MDZiNzFmN2UzMWQz
ZWIyM2VkM2U0ZTJlNjEyZjNjNTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC04MTksNiArODE5LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVz
ZUFmdGVyRGV0YWNoZWRUYXNrKCkKICAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm47
CiAKKyAgICBtX3BsYXllci0+YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKKwog
ICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QgPSBtX3BsYXllci0+ZXh0cmFNZW1vcnlDb3N0KCk7
CiAgICAgaWYgKGV4dHJhTWVtb3J5Q29zdCA+IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QpIHsK
ICAgICAgICAgSlNDOjpWTSYgdm0gPSBjb21tb25WTSgpOwpAQCAtNTA1NCw2ICs1MDU2LDkgQEAg
Ym9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQoKQogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9k
ZVBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKCFtX2lu
QWN0aXZlRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGF1dG8qIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICByZXR1cm4gaXM8UmVuZGVyVmlkZW8+KHJlbmRl
cmVyKQogICAgICAgICAmJiBkb3duY2FzdDxSZW5kZXJWaWRlbz4oKnJlbmRlcmVyKS52aWV3KCku
Y29tcG9zaXRvcigpLmNhbkFjY2VsZXJhdGVWaWRlb1JlbmRlcmluZyhkb3duY2FzdDxSZW5kZXJW
aWRlbz4oKnJlbmRlcmVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGJiZDU2MGFkNGNhMDAwOTFhYzE5YmQzZmVm
OWFkMmZjYmVlMDAzMTYuLmJjMGUzM2MwMjkxNTQ5MmVkMDkyMTVlZGE0MWVjYWJkYjBmNGZhOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwCkBAIC0xMjUsMTEgKzEyNSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAgICAgaWYgKHByZWZlcnJlZE1vZGUg
PT0gTWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAgICBwcmVmZXJyZWRNb2RlID0gTWVkaWFSZW5k
ZXJpbmdUb0NvbnRleHQ7CiAKLSAgICBpZiAoY3VycmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSAm
JiBjdXJyZW50TW9kZSAhPSBNZWRpYVJlbmRlcmluZ05vbmUpCisgICAgaWYgKGN1cnJlbnRNb2Rl
ID09IHByZWZlcnJlZE1vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChjdXJyZW50TW9k
ZSAhPSBNZWRpYVJlbmRlcmluZ05vbmUpCi0gICAgICAgIHRlYXJEb3duVmlkZW9SZW5kZXJpbmco
KTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJwcmVmZXJyZWRNb2RlOiAiLCBwcmVm
ZXJyZWRNb2RlLCAiLCBjdXJyZW50TW9kZTogIiwgY3VycmVudE1vZGUpOworCisgICAgaWYgKGN1
cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICAgICAgZGVzdHJveVZpZGVv
TGF5ZXIoKTsKIAogICAgIHN3aXRjaCAocHJlZmVycmVkTW9kZSkgewogICAgIGNhc2UgTWVkaWFS
ZW5kZXJpbmdOb25lOgpAQCAtMTQxLDEwICsxNDMsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAgICAgICAgIGNyZWF0ZVZpZGVv
TGF5ZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgLy8gSWYgdXNpbmcgYSBtb3Zp
ZSBsYXllciwgaW5mb3JtIHRoZSBjbGllbnQgc28gdGhlIGNvbXBvc2l0aW5nIHRyZWUgaXMgdXBk
YXRlZC4KLSAgICBpZiAoY3VycmVudE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdUb0xheWVyIHx8IHBy
ZWZlcnJlZE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdUb0xheWVyKQotICAgICAgICBtX3BsYXllci0+
cmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnRlYXJEb3duVmlkZW9SZW5kZXJpbmcoKQpAQCAtNDQzLDkgKzQ0MSw2IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkK
ICAgICBtX2lzQWxsb3dlZFRvUmVuZGVyID0gdHJ1ZTsKIAogICAgIHNldFVwVmlkZW9SZW5kZXJp
bmcoKTsKLQotICAgIGlmIChjdXJyZW50UmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5n
VG9MYXllciB8fCBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdUb0xh
eWVyKQotICAgICAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNv
bnN0CkBAIC00NzEsNiArNDY2LDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpzZXRSZXNvbHZlZFVSTChVUkwmJiByZXNvbHZlZFVSTCkKICAgICBtX3Jlc29sdmVkT3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3Jlc29sdmVkVVJMKTsKIH0KIAordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJlbmRlcmluZ01vZGVDaGFuZ2VkKCkKK3sK
KyAgICBpZiAobV9kZWxheWluZ1JlYWR5U3RhdGUgJiYgbV9jYWNoZWRIYXNWaWRlbyAmJiBoYXNB
dmFpbGFibGVWaWRlb0ZyYW1lKCkpCisgICAgICAgIHNjaGVkdWxlVXBkYXRlU3RhdGVzKCk7Cisg
ICAgbV9wbGF5ZXItPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzY2hlZHVsZVVwZGF0ZVN0YXRlcygpCit7CisgICAgcXVl
dWVUYXNrT25FdmVudExvb3AoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT51cGRhdGVTdGF0ZXMoKTsK
KyAgICB9KTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0
ZVN0YXRlcygpCiB7CiAgICAgaWYgKG1faWdub3JlTG9hZFN0YXRlQ2hhbmdlcykKQEAgLTU0Mywx
MSArNTUzLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRhdGVT
dGF0ZXMoKQogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gRG8gbm90IGFkdmFuY2UgdG8gSGF2
ZUN1cnJlbnREYXRhIHVubGVzcyB0aGVyZSBpcyBhIGRlY29kZWQgZnJhbWUgYXZhaWxhYmxlIGZv
ciBkaXNwbGF5CisgICAgaWYgKG5ld1JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVDdXJyZW50RGF0YQorICAgICAgICAmJiBtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhCisgICAgICAgICYmIG1fY2FjaGVkSGFzVmlk
ZW8gJiYgIWhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgeworICAgICAgICBuZXdSZWFkeVN0YXRl
ID0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsKKyAgICAgICAgbV9kZWxh
eWluZ1JlYWR5U3RhdGUgPSB0cnVlOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
ICIhaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpLCBsb3dlcmluZyByZWFkeVN0YXRlIHRvICIsIG5l
d1JlYWR5U3RhdGUpOworICAgIH0gZWxzZQorICAgICAgICBtX2RlbGF5aW5nUmVhZHlTdGF0ZSA9
IGZhbHNlOworCiAgICAgaWYgKGlzUmVhZHlGb3JWaWRlb1NldHVwKCkgJiYgY3VycmVudFJlbmRl
cmluZ01vZGUoKSAhPSBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkpCiAgICAgICAgIHNldFVwVmlk
ZW9SZW5kZXJpbmcoKTsKIAogICAgIGlmICghbV9oYXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUg
JiYgbV9jYWNoZWRIYXNWaWRlbyAmJiBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkpIHsKLSAgICAg
ICAgaWYgKG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVu
dERhdGEpCisgICAgICAgIGlmIChuZXdSZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVDdXJyZW50RGF0YSkKICAgICAgICAgICAgIG5ld1JlYWR5U3RhdGUgPSBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOwogICAgICAgICBtX2hhdmVSZXBvcnRl
ZEZpcnN0VmlkZW9GcmFtZSA9IHRydWU7CiAgICAgICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaAppbmRleCA0ODIyOGJhZjNiMDIyYmZhMzQwZTRhMWZjNDBmYjFlODI5
MzQ2NjZjLi5hY2JmNGNlM2E5MzI5ZjIyYzFiYWZiZDkwMDc3YzYyNzVlZDFhOGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBA
IC0yNzEsNiArMjcxLDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljTUlNRVR5cGVMaXN0KCk7CiAK
IHByb3RlY3RlZDoKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU3RhdGVzKCk7CiAgICAgdm9pZCB1
cGRhdGVTdGF0ZXMoKTsKIAogICAgIHZvaWQgc2V0SGFzVmlkZW8oYm9vbCk7CkBAIC0zMjAsNiAr
MzIxLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0UmVzb2x2ZWRVUkwoVVJMJiYpOwogICAg
IGNvbnN0IFVSTCYgcmVzb2x2ZWRVUkwoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkVVJMOyB9
CiAKKyAgICB2b2lkIHJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXIqIG1fcGxheWVyOwogCkBAIC0zNjgsNiArMzcxLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZDsKICAgICBib29sIG1fc2hvdWxkTWFpbnRhaW5B
c3BlY3RSYXRpbzsKICAgICBib29sIG1fc2Vla2luZzsKKyAgICBib29sIG1fZGVsYXlpbmdSZWFk
eVN0YXRlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCmluZGV4IDE3MzlmNTI3M2RmYzQwODgyY2E5OTE2YzUwMGNkMzMzYjI0OWU2MmUuLjBm
NjY5NTIyYTg2ZmVhMDc1ZGViZmU5MjgwYmJlZGU4NTc1YjkyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cApAQCAtNDYwLDYgKzQ2MCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OmNyZWF0ZVZpZGVvTGF5ZXIoKQogCiAgICAgaWYgKG1fYXZmV3JhcHBlcikKICAgICAgICAg
bV9hdmZXcmFwcGVyLT5jcmVhdGVBVkNGVmlkZW9MYXllcigpOworCisgICAgcmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
ZGVzdHJveVZpZGVvTGF5ZXIoKQpAQCAtNDY4LDYgKzQ3MCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmRlc3Ryb3lWaWRlb0xheWVyKCkKICAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6ZGVzdHJveVZpZGVvTGF5ZXIoJXAp
IC0gZGVzdHJveWluZyAlcCIsIHRoaXMsIHZpZGVvTGF5ZXIobV9hdmZXcmFwcGVyKSk7CiAgICAg
aWYgKG1fYXZmV3JhcHBlcikKICAgICAgICAgbV9hdmZXcmFwcGVyLT5kZXN0cm95VmlkZW9MYXll
cigpOworCisgICAgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIAogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRjo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4NWM4NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDEx
NDlmYmRlZS4uZWNlMmEzMWQ5ODI0MjViZjU1ZDI3OTZjMmNhOTRmMzFjN2QwMzNjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMTE4LDYgKzExOCw4IEBAIHB1YmxpYzoKIAogICAgIE1lZGlh
VGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIG91dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQogICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGE0YTZkYzI2YmViZmVjNWUyZTZhZmQyYjA4ZDA3
NDViMTg1NDE2Yy4uYTVkOGQwZTZhMWEwOTcyMzM2N2ZlODZkNDE4NDczM2RmN2NiYTYxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02Nyw3ICs2Nyw2IEBACiAjaW1wb3J0ICJXZWJDb3Jl
Q0FMYXllckV4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0
ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldElt
YWdlR2VuZXJhdG9yLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldFRyYWNrLmg+CiAj
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYVNlbGVjdGlvbkdyb3VwLmg+CiAjaW1wb3J0IDxB
VkZvdW5kYXRpb24vQVZNZXRhZGF0YUl0ZW0uaD4KQEAgLTE5Niw2ICsxOTUsNyBAQCBlbnVtIE1l
ZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0IHsKIEBpbnRlcmZhY2UgV2Vi
Q29yZUFWRlB1bGxEZWxlZ2F0ZSA6IE5TT2JqZWN0PEFWUGxheWVySXRlbU91dHB1dFB1bGxEZWxl
Z2F0ZT4gewogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsKIH0KKy0gKHZvaWQpc2V0
UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDJilwYXJl
bnQ7CiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbU91dHB1
dCAqKXNlbmRlcjsKIC0gKHZvaWQpb3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihBVlBsYXllckl0
ZW1PdXRwdXQgKilvdXRwdXQ7CiAKQEAgLTU2MSw3ICs1NjEsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0xheWVyUmVuZGVyZXIoKSBjb25zdAogCiBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0NvbnRleHRSZW5kZXJlcigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9PdXRwdXQgfHwgbV9pbWFnZUdlbmVyYXRvcjsK
KyAgICByZXR1cm4gbV92aWRlb091dHB1dDsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCkBAIC01NjksMzUg
KzU2OSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
Q29udGV4dFZpZGVvUmVuZGVyZXIoKQogICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0
b3IoKQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgaWYgKCFtX2F2QXNz
ZXQgfHwgbV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pbWFnZUdl
bmVyYXRvciA9IFtQQUw6OmdldEFWQXNzZXRJbWFnZUdlbmVyYXRvckNsYXNzKCkgYXNzZXRJbWFn
ZUdlbmVyYXRvcldpdGhBc3NldDptX2F2QXNzZXQuZ2V0KCldOwotCi0gICAgW21faW1hZ2VHZW5l
cmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJl
TW9kZUNsZWFuQXBlcnR1cmVdOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFwcGxp
ZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdl
dCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6UEFMOjprQ01UaW1lWmVyb107Ci0g
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVy
OlBBTDo6a0NNVGltZVplcm9dOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9SZW5kZXJlcigpCiB7CiAgICAgZGVzdHJveVZp
ZGVvT3V0cHV0KCk7Ci0gICAgZGVzdHJveUltYWdlR2VuZXJhdG9yKCk7Ci19Ci0KLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUltYWdlR2VuZXJhdG9yKCkK
LXsKLSAgICBpZiAoIW1faW1hZ2VHZW5lcmF0b3IpCi0gICAgICAgIHJldHVybjsKLQotICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgbV9pbWFnZUdlbmVyYXRvciA9IDA7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXll
cigpCkBAIC02MTksNyArNTkzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKICAgICAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQog
ICAgICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKIAotICAgICAgICBwbGF5ZXIoKS0+cmVu
ZGVyaW5nTW9kZUNoYW5nZWQoKTsKKyAgICAgICAgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKICAg
ICB9KTsKIH0KIApAQCAtNjU4LDYgKzYzMiw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIoKQogICAgIG1fdmlkZW9MYXllck1hbmFn
ZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CiAKICAgICBtX3ZpZGVvTGF5ZXIgPSBuaWw7CisK
KyAgICByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29uc3QKQEAgLTE4MTMsOCAr
MTc4OSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgLy8gdGhlIHZpZGVvIG91dHB1
dCwgdG9vLgogICAgIGlmICh2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkgfHwgKG1fdmlk
ZW9PdXRwdXQgJiYgbV9sYXN0UGl4ZWxCdWZmZXIpKQogICAgICAgICBwYWludFdpdGhWaWRlb091
dHB1dChjb250ZXh0LCByZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHBhaW50V2l0aEltYWdlR2Vu
ZXJhdG9yKGNvbnRleHQsIHJlY3QpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKQEAgLTE4MzgsMzggKzE4MTIsNiBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRl
eHQsIHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAg
UmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gY3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0KGN1
cnJlbnRUaW1lKCksIHJlY3QpOwotICAgIGlmIChpbWFnZSkgewotICAgICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAgIGNvbnRleHQudHJh
bnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBjb250
ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLjBmLCAtMS4wZikpOwotICAgICAgICBjb250ZXh0LnNldElt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHk6Okxvdyk7Ci0gICAg
ICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgo
KSwgcmVjdC5oZWlnaHQoKSkpOwotICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwgcGFp
bnRSZWN0LmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwotICAgIH0KLX0KLQotUmV0YWluUHRyPENH
SW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdl
Rm9yVGltZUluUmVjdChmbG9hdCB0aW1lLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAg
aWYgKCFtX2ltYWdlR2VuZXJhdG9yKQotICAgICAgICBjcmVhdGVJbWFnZUdlbmVyYXRvcigpOwot
ICAgIEFTU0VSVChtX2ltYWdlR2VuZXJhdG9yKTsKLQotICAgIE1vbm90b25pY1RpbWUgc3RhcnQg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKLQotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNl
dE1heGltdW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1h
Z2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1l
Om5pbCBlcnJvcjpuaWxdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9w
dENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNSR0JD
b2xvclNwYWNlUmVmKCkpKTsKLQotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGlu
ZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkp
OwotCi0gICAgcmV0dXJuIGltYWdlOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcykKIHsKICAgICBzdXBwb3J0ZWRUeXBlcyA9
IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0ZWRUeXBlcygpOwpAQCAt
MjQ0MCwxMSArMjM4MiwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZVZpZGVvT3V0cHV0KCkKICAgICB9CiAKICAgICBtX3ZpZGVvT3V0cHV0RGVsZWdh
dGUgPSBhZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IFttX3ZpZGVvT3V0cHV0RGVsZWdhdGUgc2V0UGFyZW50Oip0aGlzXTsKICAgICBbbV92aWRlb091
dHB1dCBzZXREZWxlZ2F0ZTptX3ZpZGVvT3V0cHV0RGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xvYmFs
UHVsbERlbGVnYXRlUXVldWUoKV07CisgICAgW21fdmlkZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNh
dGlvbk9mTWVkaWFEYXRhQ2hhbmdlV2l0aEFkdmFuY2VJbnRlcnZhbDowXTsKIAogICAgIFttX2F2
UGxheWVySXRlbS5nZXQoKSBhZGRPdXRwdXQ6bV92aWRlb091dHB1dC5nZXQoKV07CiB9CiAKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2ls
bENoYW5nZSgpCit7CisgICAgdXBkYXRlU3RhdGVzKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIHsKICAgICBpZiAo
IW1fdmlkZW9PdXRwdXQpCkBAIC0yNTM5LDEyICsyNDg4LDYgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRl
eHQmIGMKIAogICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgeyBGbG9hdFBvaW50Ojp6ZXJvKCksIG1f
bGFzdEltYWdlLT5zaXplKCkgfTsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbV9sYXN0
SW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7Ci0KLSAgICAv
LyBJZiB3ZSBoYXZlIGNyZWF0ZWQgYW4gQVZBc3NldEltYWdlR2VuZXJhdG9yIGluIHRoZSBwYXN0
IGR1ZSB0byBtX3ZpZGVvT3V0cHV0IG5vdCBoYXZpbmcgYW4gYXZhaWxhYmxlCi0gICAgLy8gdmlk
ZW8gZnJhbWUsIGRlc3Ryb3kgaXQgbm93IHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KLSAg
ICBpZiAobV9pbWFnZUdlbmVyYXRvcikKLSAgICAgICAgZGVzdHJveUltYWdlR2VuZXJhdG9yKCk7
Ci0KIH0KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQpAQCAtMzg5OSwxNCAr
Mzg0MiwyNSBAQCBOU0FycmF5KiBwbGF5ZXJLVk9Qcm9wZXJ0aWVzKCkKIAogQGVuZAogCi1AaW1w
bGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFdlYkNv
cmVBVkZQdWxsRGVsZWdhdGUgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQz4gX3BhcmVudDsKK30KIAogQHN5bnRoZXNpemUgc2VtYXBob3Jl
ID0gbV9zZW1hcGhvcmU7CiAKKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDJilwYXJlbnQKK3sKKyAgICBfcGFyZW50ID0gbWFrZVdl
YWtQdHIocGFyZW50KTsKK30KKwogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOihB
VlBsYXllckl0ZW1WaWRlb091dHB1dCAqKW91dHB1dAogewogICAgIFVOVVNFRF9QQVJBTShvdXRw
dXQpOwogICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbcGFyZW50ID0gX3BhcmVudF0geworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAg
ICAgcGFyZW50LT5vdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIC0g
KHZvaWQpb3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1WaWRlb091dHB1dCAq
KW91dHB1dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGQ5YzU4ZGU4ZjU3YjA0
YTliZTQ2MTYzYzVkNjUzOThlOWI0NzVlNjMuLjU2YjcwZGZlMTNiYmJjMzliNjNlMWFjM2ZmMTJi
ZWEyOGFlNmU4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTQ1NSw3ICs0
NTUsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpIGNvbnN0CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1h
a2VSZWZQdHIobV9wbGF5ZXIuZ2V0KCkpKQotICAgICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNo
YW5nZWQocGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkpLCBtX2lkKTsKKyAg
ICAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OkFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKHBsYXllci0+cmVuZGVyaW5nQ2FuQmVB
Y2NlbGVyYXRlZCgpKSwgbV9pZCk7CiB9CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOTUxYzA1NmYxMjZlZDQ0
OTQzZWM0MGNkNzMyMDEzNGJhMzM1OWRhZi4uYjU0NzA4N2IzOGJmNzY1OWVmZDQzODU5Y2NhOWNl
MTg2NmZhY2M5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDctMjkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBSZW1vdmUgc3VwcG9ydCBmb3IgQVZBc3NldEltYWdlR2VuZXJhdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg1NjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGhlIDJ4Mi1ncmVlbi5t
cDQgZmlsZSBmYWlscyB0byBkZWNvZGUgYXMgaXRzIG5hdHVyYWwgc2l6ZSBpcyB0b28gc21hbGwg
Zm9yIHRoZSBzeXN0ZW0gZGVjb2RlciB0byBoYW5kbGUuIFJlcGxhY2Ugd2l0aAorICAgICAgICBh
IG1lZGlhIGZpbGUgb2YgbW9yZSByZWFzb25hYmxlIHNpemUuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1m
b3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3BfYmFzZS5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYS8xNngxNi1ncmVlbi5tcDQ6IEFkZGVkLgorCiAyMDIxLTA4LTAy
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbY3Nz
LXNjcm9sbC1zbmFwXSBDb25zaWRlciBhbGwgc25hcCBhcmVhcyBhdCBhIGdpdmVuIHNuYXAgb2Zm
c2V0IHdoZW4gc25hcHBpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmli
dXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL3ZpZGVvLWFzcGVjdC1yYXRpby5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50
LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKaW5kZXggNTUxNDNlYWZmNWNkZDQ5
ODcxYzBlYWJhYjQzNWIzOWY3YTQyZWJjZC4uNTNjZWI4MmU1Y2JkMDQ5YTlmYzFmMTJlNzJkMDhh
NmVjNzViMjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZv
ci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRl
cmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFu
ZC1pbWFnZXMvdmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgZnVuY3Rp
b24gdGVzdF9jb21wdXRlZF9zdHlsZSh3aWR0aCwgaGVpZ2h0LCBleHBlY3RlZCkgewogCiB0LnN0
ZXAoZnVuY3Rpb24oKSB7CiAgIHZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250YWluZWQiKTsKLSAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS8yeDItZ3JlZW4n
KTsKKyAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS8xNngxNi1ncmVlbicpOwogICBh
c3NlcnRfcmF0aW8odmlkZW8sIDIuNSk7CiB9LCAiY29udGFpbjpzaXplIGFzcGVjdCByYXRpbyIp
OwogCkBAIC0zNyw3ICszNyw3IEBAIHQuc3RlcChmdW5jdGlvbigpIHsKICAgdmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOwogICB2aWRlby5zZXRBdHRyaWJ1dGUoIndpZHRo
IiwgIjI1MCIpOwogICB2aWRlby5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKLSAgdmlk
ZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS8yeDItZ3JlZW4nKTsKKyAgdmlkZW8uc3JjID0g
Z2V0VmlkZW9VUkkoJy9tZWRpYS8xNngxNi1ncmVlbicpOwogICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHZpZGVvKTsKICAgLy8gVmlkZW9zIGRlZmF1bHQgdG8gYSBzaXplIG9mIDMwMHgxNTBw
eCBhbmQgY2FsY3VsYXRlIHRoZWlyIGFzcGVjdCByYXRpbwogICAvLyBiYXNlZCBvbiB0aGF0IGJl
Zm9yZSB0aGUgdmlkZW8gaXMgbG9hZGVkLiBTbyB0aGlzIHNob3VsZCBiZSAyLCBpZ25vcmluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3Bf
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX2xvb3Bf
YmFzZS5odG1sCmluZGV4IDliNWQ2OWIzMWEwMzNlMjI2ZmZlNGFkYTFlMTU0MjkzZjMzZWM5YTEu
LjE5MDM2ZWFiOTZkMzU0OWE1MmQzM2ZmODYxMjQ0OTk3ZTkwM2NmMmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwK
QEAgLTMzLDcgKzMzLDcgQEAKIAogICAgICAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCJzZWVr
aW5nIiwgc3RhcnRUZXN0LCBmYWxzZSk7CiAgICAgICAgIG1lZGlhLmxvb3AgPSB0cnVlOwotICAg
ICAgICBtZWRpYS5zcmMgPSBnZXRWaWRlb1VSSSgiL21lZGlhLzJ4Mi1ncmVlbiIpICsgIj8iICsg
bmV3IERhdGUoKSArIE1hdGgucmFuZG9tKCk7CisgICAgICAgIG1lZGlhLnNyYyA9IGdldFZpZGVv
VVJJKCIvbWVkaWEvMTZ4MTYtZ3JlZW4iKSArICI/IiArIG5ldyBEYXRlKCkgKyBNYXRoLnJhbmRv
bSgpOwogICAgICAgICBtZWRpYS5wbGF5KCk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWEvMTZ4MTYtZ3JlZW4ubXA0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYS8xNngxNi1ncmVlbi5tcDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQxN2M4ZTQ4ODRiODMw
OWI1ODY3ZDExMWQ5NGMzODQyMjY2NWU1NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI5MQp6
Y21lSEtPPXUpVjZ0Mm1pNT9zaDM7LVYyc1UyKHo4cTxiPlNDYyVhKkYmSmJRcU95eUsrU1lXfVdT
WiV9Ylg2dVoKeklSJD99Wi1Oam4wVG8xOCohdnotJFJVV30jb1JXcTdaTG5IKDFZRnJqXkZFXnps
flc1QkNMcHlSS05HV19meiQlCnpVaUVZc1c0eGw5djhTU2R1Pm5STHFiVFoqOE4/LSVGP01leWsm
Pn17dF83fnB0KXRhX0huXylmQUgle0tEe1Y3Mgp6Ym1gKmQ8Pnx1d2R8fkZ3c3A7PjtvSTNnRzla
fmEjQmczdU0/eWNuP0ttWUQ8PDtLcUJPQDg+OyYlWlFedm44SkEKelBMeFApbWdYUj82YVk8S1VS
ezFCVSpaPzlGMlV3WDJacDY2WnUrdktkQ0BTWV5GX20pMXo2UU9VWU1ITit9dGVHCnpKeSVBKTJu
JGlOSGJyPzBSVVA+N2lESzxWcDwzWE1DPTE2amNfSiY7RzxSaiRrRFF1aUUqSnwyN29xVCpOP0p4
Xgp6ZGNrT3o8fT9xYVJoMTJ7SHAtQUxAS2Brd2lsPzJwbVJUP21nYTs0MmhJRFBwWGQ9UStNN1Nt
YEVYfURWUTZPeEQKem5wYEsrX2ROd150fSo5MjhpS1BQU08lNkwrXnJ+LVI/KGFeTzxvYTcrcCgm
N0Y/blBPKT8rKVdSRnU/S3pRfWJvCnpLP0VpOHFvXmpUUTB5TTJlOXlzSkkpSzUkQiVRPFkwLTxS
Z1VaYGNfM3BmRVVgeH1YOStEO1YyTFBLfTNNTEgyKQp6aCFrKjQxbz4xRjVsRHMyRCUpYHJ2Z2NZ
dyRpZnZkUlorSWZvPWBOMm0mbWxQUDNmJndiczRyT21aN35DI2pze3oKempMQDJGQkRZblhHMXtV
WGNwKzQtOTJyVnlMdDc8LW1ZRTNKKG5QOCUhVnx+dG1QX2A7djdEc0JnRUlEJiU3UzdRCnpyd2F5
T3IoIUlsRmJnckojMz5nSVlqeiVoKGxXTTYrPjNFWVhiN0FrYSoxYEVLYjxEUzRQKWMtP0tqenp0
PjE1Ywp6fExmIz8/e0QzQlNBWTcmTEY/JUd7YTQ7TmJ7OXxJYGhBfU5sRkxYMWVlezFwZUZ4Sk98
OHBuUXQ/Y2QhfDZJJTYKei04I0NuR2Q0VUxMe1N8dDRMXyg/VUdQMntgfmtgPyVRNT12KFFPTGdX
Qk92eF5DVzJ5S2NaKndXfns7WnZhWTNiCnowXyMjSStpbi1aM0BPO0xiUFVKeiNTV2hGYkpFb2M7
KUx7LVprczZMYiRvKDZtI3NQWFJeV085NyFUYXp3T0BhbAp6dT9HKlg/NUMwV3NfUTUxOTg1KFVW
TWl3WjAoNXNwZ3N2fmlDdWlXNVU0YnlCZzQ+ZHdiMkVJeCNjdSl5ZkBuZWEKelo2clEjJWZCZ0lf
OTRIZndDV3JOYEs7cFdpV1cqbGRQVzBtajA5UkxYaV9TZDNUQWBiK3VJTXBaM3o1Sz9TNnZUCnoo
S3xGb2ZhQ19DYTs0TUZBcnRBdCpweks+PGlfU09ie19MUDs2IUFuSVhrMjZwWCF0RithamtuamV2
aVJhZDUmbwp6dEYjbGZ7VjBjbG00MWZ3UHk5dFFrUlE/Y2pQKlR4eU80cCReaEg4eGNoVmhWY1dR
PCNaeUtCWDtMZ29aTTR8ejkKelFadnhrOGNvJXF0TXY4Tyo5XzBMbl87fTNIQURZMFB0ZyMkKFJN
PzhhO3piQz0jI3JXWEBBWlA4YmpHRDVOUXpvCnoqKDFZeSYkRiEtNmEhaDhheE5RZmVad0FEMUhY
Unc+Sz9qbGtQWHF9JWNvWCRVZCp3UD5RQ1EoXzI/ZV8kNn0jawp6YUxQe3VOOER8ekhrT3s/THw7
Mn5kXj4hKypGcG5taGNwa2NabVluTFR2PlU7KWRLdmJLJkc2cU5CWncyanhQfiQKbE94TEdOY2B2
KkNrNitVZl8xP3F5ci1ZS0U4ODMtP1cjJlIqWDB+NyYjdmdQK0VndHs/CgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434926</attachid>
            <date>2021-08-04 12:35:17 -0700</date>
            <delta_ts>2021-08-04 14:42:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228560-20210804123516.patch</filename>
            <type>text/plain</type>
            <size>13483</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMyYjI5ZmMzMjYwMWEz
NDBkNGM3NWRjYmVmZjU2NGJiODU1MzMwOS4uZWJmOWJkYjE0ZTk4NWRiNzExMDkyNTk3Y2VlZDI1
YzQyZTQxNDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA4LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MTMzNjI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBIG11Y2ggbW9yZSBtaW5pbWFsIGFwcHJvYWNoIHRvIHJlbW92aW5nIHN1cHBvcnQgZm9yIEFW
QXNzZXRJbWFnZUdlbmVyYXRvci4KKworICAgICAgICBUaGUgb25seSB0aW1lIHdlIHVzZSBhbiBB
VkFzc2V0SW1hZ2VHZW5lcmF0b3IgKGFzIG9wcG9zZWQgdG8gYW4gQVZQbGF5ZXJJdGVtVmlkZW9P
dXRwdXQpCisgICAgICAgIGlzIHdoZW4gdGhlIGxhdHRlciBkb2VzIG5vdCBjdXJyZW50bHkgaGF2
ZSBhbiBhdmFpbGFibGUgaW1hZ2UgZW5xdWV1ZWQuIEJlY2F1c2UgcGFpbnRpbmcKKyAgICAgICAg
aXMgYSBzeW5jaHJvbm91cyBvcGVyYXRpb24sIHdlIHVzZSBhIHN5bmNocm9ub3VzIEFQSSAodGhl
IGdlbmVyYXRvcikgdG8gY3JlYXRlIGFuIGltYWdlCisgICAgICAgIGZvciB0aGF0IG9wZXJhdGlv
bi4gSG93ZXZlciwgdGhpcyBjYW4gY3JlYXRlIGRlYWRsb2NrcyBpZiAoZm9yIGV4YW1wbGUpIHRo
ZSByZXNvdXJjZSBuZWVkcworICAgICAgICB0byBsb2FkIGRhdGEgb24gdGhlIG1haW4gdGhyZWFk
IGluIG9yZGVyIHRvIGNvbXBsZXRlIHRoZSBwYWludGluZyBvcGVyYXRpb24uCisKKyAgICAgICAg
SW5zdGVhZCwgYWxsb3cgdGhlIG1haW4gcnVubG9vcCB0byBzcGluIHdoaWxlIHdhaXRpbmcgKHVw
IHRvIDFfcykgZm9yIHRoZSB2aWRlbyBvdXRwdXQKKyAgICAgICAgdG8gcmVjZWl2ZSBhIGRlY29k
ZWQgZnJhbWUuCisKKyAgICAgICAgRHJpdmUtYnkgZml4ZXM6CisgICAgICAgIC0gRG9uJ3QgY3Jl
YXRlIGFuIEFWUGxheWVyTGF5ZXIgYXQgQVZQbGF5ZXItY3JlYXRpb247IHRoaXMgY2F1c2VzIHRo
ZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dAorICAgICAgICAgIHRvIG5ldmVyIHJlY2VpdmUgYSBk
ZWNvZGVkIGZyYW1iZSAoYXMgdGhlIGxheWVyIGlzIG5vdCBpbiBhIENBTGF5ZXItaGVpcmFyY2h5
KS4KKyAgICAgICAgLSBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkgc2hvdWxkbid0IGJlICJub25l
IiB3aGVuIHRoZSBwYWdlIGlzbid0IHZpc2libGUuIFdlIGFscmVhZHkKKyAgICAgICAgICBqdXN0
IG1hcmsgdGhlIGxheWVyIGFzICJoaWRkZW4iIGluIHRoYXQgY2FzZS4KKyAgICAgICAgLSBEb24n
dCB0ZWFyIGRvd24gdGhlIEFWUGxheWVySXRlbVZpZGVvT3V0cHV0IHdoZW4gY3JlYXRpbmcgYW4g
QVZQbGF5ZXJMYXllcjsgaXQnbGwganVzdAorICAgICAgICAgIGdldCByZS1jcmVhdGVkIGFueXdh
eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpwcmVmZXJyZWRSZW5kZXJpbmdNb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1Jl
bmRlcmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVW
aWRlb091dHB1dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURh
dGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoLVtXZWJD
b3JlQVZGUHVsbERlbGVnYXRlIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6XSk6CisgICAgICAg
ICgtW1dlYkNvcmVBVkZQdWxsRGVsZWdhdGUgc2V0UGFyZW50Ol0pOgorCiAyMDIxLTA4LTAzICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjgwNTMxIGFuZCByMjgwNTg5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwMGNiMWY1MjY4NjNm
YWNkY2Q3OGE0Mjc0ODlhYzdlNGQ3ZmNjZDIzLi5iNTUzYTUyYWYxYTBhZTQ3YTY2MzJlMGQ2NjY1
MDMxZTc4NzUyNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA4LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MTMzNjI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBEcml2ZS1ieSBmaXg6IHdlJ3JlIHBhc3NpbmcgdGhlIHdyb25nIHZhbHVlIGludG8gYWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSwgYW5kCisgICAgICAgIHdlJ3JlIG5vdCBzZXR0
aW5nIHRoZSBjb3JyZWN0IGluaXRpYWwgdmFsdWUgb24gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToKKwogMjAy
MS0wOC0wMyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI4MDUzMSBhbmQgcjI4MDU4OS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYmJk
NTYwYWQ0Y2EwMDA5MWFjMTliZDNmZWY5YWQyZmNiZWUwMDMxNi4uOTYzMGZhMjQ2ZWQ5MGNjM2Yx
NDhkYjMwMTUxMTE2MGY0MmY5Mzc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpbwogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1l
ZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZWZlcnJl
ZFJlbmRlcmluZ01vZGUoKSBjb25zdAogewotICAgIGlmICghbV92aXNpYmxlIHx8IGFzc2V0U3Rh
dHVzKCkgPT0gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzVW5rbm93bikKKyAgICBpZiAoYXNzZXRT
dGF0dXMoKSA9PSBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNVbmtub3duKQogICAgICAgICByZXR1
cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCiAgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSAmJiBtX3BsYXllci0+cmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpKQpAQCAtMTIy
LDE4ICsxMjIsMTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVw
VmlkZW9SZW5kZXJpbmcoKQogICAgIE1lZGlhUmVuZGVyaW5nTW9kZSBjdXJyZW50TW9kZSA9IGN1
cnJlbnRSZW5kZXJpbmdNb2RlKCk7CiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIHByZWZlcnJlZE1v
ZGUgPSBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCk7CiAKLSAgICBpZiAocHJlZmVycmVkTW9kZSA9
PSBNZWRpYVJlbmRlcmluZ05vbmUpCi0gICAgICAgIHByZWZlcnJlZE1vZGUgPSBNZWRpYVJlbmRl
cmluZ1RvQ29udGV4dDsKLQogICAgIGlmIChjdXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYm
IGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTm9uZSkKLSAgICAgICAgdGVhckRv
d25WaWRlb1JlbmRlcmluZygpOwotCiAgICAgc3dpdGNoIChwcmVmZXJyZWRNb2RlKSB7CiAgICAg
Y2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CisgICAgICAgIHRlYXJEb3duVmlkZW9SZW5kZXJpbmco
KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0Ogor
ICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgICAgICBjcmVhdGVDb250ZXh0VmlkZW9S
ZW5kZXJlcigpOwogICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZh
ODVjODQ5ZGVkMTkzMmQ1ZTZmODU2YzE4NTVhYjAxMTQ5ZmJkZWUuLjhlNGJiNDcwYzE1YzRlODFh
NjQ3MjQ2NTU3OWIzM2Q1Y2QzOTA1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTExNyw2
ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNp
ZW50RXh0ZXJuYWxQcm90ZWN0aW9uQ2hhbmdlZChib29sKTsKIAogICAgIE1lZGlhVGltZSBjdXJy
ZW50TWVkaWFUaW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxs
Q2hhbmdlKCk7CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKQEAgLTQz
NSw2ICs0MzYsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVsZXNz
VmlkZW9QbGF5YmFjayB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkUGxheVRvUGxheWJhY2tU
YXJnZXQgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgYm9vbCBtX3J1bm5pbmdNb2RhbFBhaW50IHsg
ZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDRhNGE2ZGMyNmJl
YmZlYzVlMmU2YWZkMmIwOGQwNzQ1YjE4NTQxNmMuLjM1Y2FkYTc5MTJhOGNkY2Q4YjZmNWU4NGIx
NWQ3NmFjNTY3MmVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTk2LDYgKzE5Niw3
IEBAIEBlbmQKIEBpbnRlcmZhY2UgV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSA6IE5TT2JqZWN0PEFW
UGxheWVySXRlbU91dHB1dFB1bGxEZWxlZ2F0ZT4gewogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3Nl
bWFwaG9yZTsKIH0KKy0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDJilwYXJlbnQ7CiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxD
aGFuZ2U6KEFWUGxheWVySXRlbU91dHB1dCAqKXNlbmRlcjsKIC0gKHZvaWQpb3V0cHV0U2VxdWVu
Y2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1PdXRwdXQgKilvdXRwdXQ7CiAKQEAgLTEwNzAsOSAr
MTA3MSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIoKQogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKHBsYXllcigpLT5pc1ZpZGVvUGxh
eWVyKCkpCi0gICAgICAgIGNyZWF0ZUFWUGxheWVyTGF5ZXIoKTsKLQogICAgIGlmIChtX2F2UGxh
eWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsK
IApAQCAtMTgwMiwxOSArMTgwMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgc2V0
RGVsYXlDYWxsYmFja3ModHJ1ZSk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAK
LSAgICAvLyBDYWxsZXJzIG9mIHRoaXMgd2lsbCBvZnRlbiBjYWxsIGNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZSBmaXJzdCwKLSAgICAvLyB3aGljaCBjYWxscyB1cGRhdGVMYXN0UGl4
ZWxCdWZmZXIsIHdoaWNoIGNsZWFycyBtX2xhc3RJbWFnZSB3aGVuZXZlciB0aGUKLSAgICAvLyB2
aWRlbyBkZWxpdmVycyBhIG5ldyBmcmFtZS4gVGhpcyBicmVha3MgdmlkZW9PdXRwdXRIYXNBdmFp
bGFibGVGcmFtZSdzCi0gICAgLy8gc2hvcnQtY2lyY3VpdGluZyB3aGVuIG1fbGFzdEltYWdlIGlz
IG5vbi1udWxsLCBidXQgdGhlIHZpZGVvIG9mdGVuCi0gICAgLy8gZG9lc24ndCBoYXZlIGEgbmV3
IGZyYW1lIHRvIGRlbGl2ZXIgc2luY2UgdGhlIGxhc3QgdGltZQotICAgIC8vIGhhc05ld1BpeGVs
QnVmZmVyRm9ySXRlbVRpbWUgd2FzIGNhbGxlZCBhZ2FpbnN0IG1fdmlkZW9PdXRwdXQuIFRvIGF2
b2lkCi0gICAgLy8gY2hhbmdpbmcgdGhlIHNlbWFudGljcyBvZiB2aWRlb091dHB1dEhhc0F2YWls
YWJsZUZyYW1lIGluIHdheXMgdGhhdCBtaWdodAotICAgIC8vIGJyZWFrIG90aGVyIGNhbGxlcnMs
IGxvb2sgZm9yIHByb2R1Y3Rpb24gb2YgYSByZWNlbnQgcGl4ZWwgYnVmZmVyIGZyb20KLSAgICAv
LyB0aGUgdmlkZW8gb3V0cHV0LCB0b28uCi0gICAgaWYgKHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxl
RnJhbWUoKSB8fCAobV92aWRlb091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1ZmZlcikpCi0gICAgICAg
IHBhaW50V2l0aFZpZGVvT3V0cHV0KGNvbnRleHQsIHJlY3QpOwotICAgIGVsc2UKLSAgICAgICAg
cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoY29udGV4dCwgcmVjdCk7CisgICAgcGFpbnRXaXRoVmlk
ZW9PdXRwdXQoY29udGV4dCwgcmVjdCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwpAQCAtMjQ0MCw2ICsyNDI2LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCgp
CiAgICAgfQogCiAgICAgbV92aWRlb091dHB1dERlbGVnYXRlID0gYWRvcHROUyhbW1dlYkNvcmVB
VkZQdWxsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbbV92aWRlb091dHB1dERlbGVnYXRl
IHNldFBhcmVudDoqdGhpc107CiAgICAgW21fdmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6bV92aWRl
b091dHB1dERlbGVnYXRlLmdldCgpIHF1ZXVlOmdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCldOwog
CiAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIGFkZE91dHB1dDptX3ZpZGVvT3V0cHV0LmdldCgp
XTsKQEAgLTI1MjMsMTEgKzI1MTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIG91dHB1dFJlY3QpCiB7Ci0gICAg
Ly8gSXQncyBjcnVjaWFsIHRvIG5vdCB3YWl0IHN5bmNocm9ub3VzbHkgZm9yIHRoZSBuZXh0IGlt
YWdlLiBWaWRlb3MgdGhhdAotICAgIC8vIGNvbWUgZG93biB0aGlzIHBhdGggYXJlIHBlcmZvcm1p
bmcgc2xvdy1jYXNlIHNvZnR3YXJlIHVwbG9hZHMsIGFuZCBzdWNoCi0gICAgLy8gdmlkZW9zIG1h
eSBub3QgcmV0dXJuIG1ldGFkYXRhIGluIGEgdGltZWx5IGZhc2hpb24uIFVzZSB0aGUgbW9zdCBy
ZWNlbnRseQotICAgIC8vIGF2YWlsYWJsZSBwaXhlbCBidWZmZXIsIGlmIGFueS4KLSAgICB1cGRh
dGVMYXN0SW1hZ2UoKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3lu
Y2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0yNTY3LDkgKzI1NTAsMzAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjp3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCkKICAgICBbbV92aWRl
b091dHB1dCByZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURhdGFDaGFuZ2VXaXRoQWR2YW5jZUlu
dGVydmFsOjBdOwogCiAgICAgLy8gV2FpdCBmb3IgMSBzZWNvbmQuCi0gICAgYm9vbCBzYXRpc2Zp
ZWQgPSBbbV92aWRlb091dHB1dERlbGVnYXRlIHNlbWFwaG9yZV0ud2FpdEZvcigxX3MpOworICAg
IE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKworICAgIFJ1bkxv
b3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IHRpbWVvdXRUaW1l
ciB7IFJ1bkxvb3A6Om1haW4oKSwgW10geworICAgICAgICBSdW5Mb29wOjptYWluKCkuc3RvcCgp
OworICAgIH0gfTsKKyAgICB0aW1lb3V0VGltZXIuc3RhcnRPbmVTaG90KDFfcyk7CisKKyAgICBt
X3J1bm5pbmdNb2RhbFBhaW50ID0gdHJ1ZTsKKyAgICBSdW5Mb29wOjpydW4oKTsKKyAgICBtX3J1
bm5pbmdNb2RhbFBhaW50ID0gZmFsc2U7CisKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
d2FpdGluZyBmb3IgdmlkZW9PdXRwdXQgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBz
dGFydCkuc2Vjb25kcygpKTsKKworICAgIGJvb2wgc2F0aXNmaWVkID0gdGltZW91dFRpbWVyLmlz
QWN0aXZlKCk7CiAgICAgaWYgKCFzYXRpc2ZpZWQpCi0gICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAidGltZWQgb3V0Iik7CisgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ0
aW1lZCBvdXQiKTsKKyAgICBlbHNlCisgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ3
YWl0aW5nIGZvciB2aWRlb091dHB1dCB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0
YXJ0KS5zZWNvbmRzKCkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKQoreworICAgIGlmIChtX3J1bm5pbmdN
b2RhbFBhaW50KQorICAgICAgICBSdW5Mb29wOjptYWluKCkuc3RvcCgpOwogfQogCiAjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0zODk5LDcgKzM5MDMsOSBAQCAtICh2b2lk
KXJlc291cmNlTG9hZGVyOihBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKilyZXNvdXJjZUxvYWRlciBk
aWRDYW5jZWxMb2FkaW5nUgogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVs
bERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGFy
ZW50OworfQogCiBAc3ludGhlc2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIApAQCAtMzkw
Nyw2ICszOTEzLDEwIEBAIC0gKHZvaWQpb3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZTooQVZQbGF5
ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRwdXQKIHsKICAgICBVTlVTRURfUEFSQU0ob3V0cHV0KTsK
ICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3BhcmVudCA9IF9wYXJlbnRdIHsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAgIHBh
cmVudC0+b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworICAgIH0pOwogfQogCiAtICh2b2lk
KW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRw
dXQKQEAgLTM5MTUsNiArMzkyNSwxMSBAQCAtICh2b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hl
ZDooQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQgKilvdXRwdXQKICAgICAvLyBOby1vcC4KIH0KIAor
LSAodm9pZClzZXRQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMmKXBhcmVudAoreworICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworfQor
CiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggZDI5ODVjNzhhMThkYTQwMjAzMDY5
MTdhNjYwYTgzYTU2NWJhZWQ2Ny4uY2FjNGVhNTE3MDIzZTVlN2NiYTE5YWQ2Y2NhYTNlZGQ1ODBh
ZTc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zNTMsNyArMzUzLDcgQEAgcHJpdmF0ZToKICAgICBm
bG9hdCBtX3ZpZGVvQ29udGVudFNjYWxlIHsgMS4wIH07CiAKICAgICBib29sIG1fYnVmZmVyZWRD
aGFuZ2VkIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsg
dHJ1ZSB9OworICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsK
IAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKSAmJiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQogICAgIGJvb2wgbV9zaG91bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBkOWM1OGRlOGY1N2IwNGE5YmU0
NjE2M2M1ZDY1Mzk4ZTliNDc1ZTYzLi5lMWNjOThjZWRhOWI3MGNkMjJmY2NhZGMzNGNiZDgzOTBm
Nzc0MmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMTQsNiArMTE0LDgg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVk
aWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGEKICAgICAsIG1fZG9jdW1lbnRTZWN1cml0eU9yaWdp
bihwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSkKIHsKICAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSKTsKKworICAgIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7CiB9
CiAjZW5kaWYKIApAQCAtNDU1LDcgKzQ1Nyw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiB7CiAg
ICAgaWYgKGF1dG8gcGxheWVyID0gbWFrZVJlZlB0cihtX3BsYXllci5nZXQoKSkpCi0gICAgICAg
IGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpBY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChwbGF5ZXItPnN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSksIG1faWQpOworICAgICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
cGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpLCBtX2lkKTsKIH0KIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCg==
</data>
<flag name="review"
          id="457587"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434955</attachid>
            <date>2021-08-04 17:30:50 -0700</date>
            <delta_ts>2021-08-05 13:01:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210804173049.patch</filename>
            <type>text/plain</type>
            <size>13344</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMyYjI5ZmMzMjYwMWEz
NDBkNGM3NWRjYmVmZjU2NGJiODU1MzMwOS4uYTU4YTM3NTQ0NjY0NjRjOWUzMjJiYjllOTU4NDdm
ZWUxY2E2Y2I3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA4LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MTMzNjI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
QSBtdWNoIG1vcmUgbWluaW1hbCBhcHByb2FjaCB0byByZW1vdmluZyBzdXBwb3J0IGZvciBBVkFz
c2V0SW1hZ2VHZW5lcmF0b3IuCisKKyAgICAgICAgVGhlIG9ubHkgdGltZSB3ZSB1c2UgYW4gQVZB
c3NldEltYWdlR2VuZXJhdG9yIChhcyBvcHBvc2VkIHRvIGFuIEFWUGxheWVySXRlbVZpZGVvT3V0
cHV0KQorICAgICAgICBpcyB3aGVuIHRoZSBsYXR0ZXIgZG9lcyBub3QgY3VycmVudGx5IGhhdmUg
YW4gYXZhaWxhYmxlIGltYWdlIGVucXVldWVkLiBCZWNhdXNlIHBhaW50aW5nCisgICAgICAgIGlz
IGEgc3luY2hyb25vdXMgb3BlcmF0aW9uLCB3ZSB1c2UgYSBzeW5jaHJvbm91cyBBUEkgKHRoZSBn
ZW5lcmF0b3IpIHRvIGNyZWF0ZSBhbiBpbWFnZQorICAgICAgICBmb3IgdGhhdCBvcGVyYXRpb24u
IEhvd2V2ZXIsIHRoaXMgY2FuIGNyZWF0ZSBkZWFkbG9ja3MgaWYgKGZvciBleGFtcGxlKSB0aGUg
cmVzb3VyY2UgbmVlZHMKKyAgICAgICAgdG8gbG9hZCBkYXRhIG9uIHRoZSBtYWluIHRocmVhZCBp
biBvcmRlciB0byBjb21wbGV0ZSB0aGUgcGFpbnRpbmcgb3BlcmF0aW9uLgorCisgICAgICAgIElu
c3RlYWQsIGFsbG93IHRoZSBtYWluIHJ1bmxvb3AgdG8gc3BpbiB3aGlsZSB3YWl0aW5nICh1cCB0
byAxX3MpIGZvciB0aGUgdmlkZW8gb3V0cHV0CisgICAgICAgIHRvIHJlY2VpdmUgYSBkZWNvZGVk
IGZyYW1lLgorCisgICAgICAgIERyaXZlLWJ5IGZpeGVzOgorICAgICAgICAtIERvbid0IGNyZWF0
ZSBhbiBBVlBsYXllckxheWVyIGF0IEFWUGxheWVyLWNyZWF0aW9uOyB0aGlzIGNhdXNlcyB0aGUg
QVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQKKyAgICAgICAgICB0byBuZXZlciByZWNlaXZlIGEgZGVj
b2RlZCBmcmFtYmUgKGFzIHRoZSBsYXllciBpcyBub3QgaW4gYSBDQUxheWVyLWhlaXJhcmNoeSku
CisgICAgICAgIC0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIHNob3VsZG4ndCBiZSAibm9uZSIg
d2hlbiB0aGUgcGFnZSBpc24ndCB2aXNpYmxlLiBXZSBhbHJlYWR5CisgICAgICAgICAganVzdCBt
YXJrIHRoZSBsYXllciBhcyAiaGlkZGVuIiBpbiB0aGF0IGNhc2UuCisgICAgICAgIC0gRG9uJ3Qg
dGVhciBkb3duIHRoZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dCB3aGVuIGNyZWF0aW5nIGFuIEFW
UGxheWVyTGF5ZXI7IGl0J2xsIGp1c3QKKyAgICAgICAgICBnZXQgcmUtY3JlYXRlZCBhbnl3YXku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5k
ZXJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlk
ZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKC1bV2ViQ29y
ZUFWRlB1bGxEZWxlZ2F0ZSBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOl0pOgorICAgICAgICAo
LVtXZWJDb3JlQVZGUHVsbERlbGVnYXRlIHNldFBhcmVudDpdKToKKwogMjAyMS0wOC0wMyAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI4MDUzMSBhbmQgcjI4MDU4OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDBjYjFmNTI2ODYzZmFj
ZGNkNzhhNDI3NDg5YWM3ZTRkN2ZjY2QyMy4uZDMyOWYwY2NkMTE0YzBlYzY3MDJlOWE2NzE1NmU0
MTMzYjUxMGE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOC0wNCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBw
b3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODEz
MzYyODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIERy
aXZlLWJ5IGZpeDogd2UncmUgcGFzc2luZyB0aGUgd3JvbmcgdmFsdWUgaW50byBhY2NlbGVyYXRl
ZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpLCBhbmQKKyAgICAgICAgd2UncmUgbm90IHNldHRpbmcg
dGhlIGNvcnJlY3QgaW5pdGlhbCB2YWx1ZSBvbiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgY3Jl
YXRpb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorCiAyMDIxLTA4
LTAzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjgwNTMxIGFuZCByMjgwNTg5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiYmQ1NjBh
ZDRjYTAwMDkxYWMxOWJkM2ZlZjlhZDJmY2JlZTAwMzE2Li45NjMwZmEyNDZlZDkwY2MzZjE0OGRi
MzAxNTExMTYwZjQyZjkzNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFS
ZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVu
ZGVyaW5nTW9kZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Zpc2libGUgfHwgYXNzZXRTdGF0dXMo
KSA9PSBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNVbmtub3duKQorICAgIGlmIChhc3NldFN0YXR1
cygpID09IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1Vua25vd24pCiAgICAgICAgIHJldHVybiBN
ZWRpYVJlbmRlcmluZ05vbmU7CiAKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpICYmIG1fcGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpCkBAIC0xMjIsMTgg
KzEyMiwxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRl
b1JlbmRlcmluZygpCiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIGN1cnJlbnRNb2RlID0gY3VycmVu
dFJlbmRlcmluZ01vZGUoKTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkTW9kZSA9
IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKTsKIAotICAgIGlmIChwcmVmZXJyZWRNb2RlID09IE1l
ZGlhUmVuZGVyaW5nTm9uZSkKLSAgICAgICAgcHJlZmVycmVkTW9kZSA9IE1lZGlhUmVuZGVyaW5n
VG9Db250ZXh0OwotCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IHByZWZlcnJlZE1vZGUgJiYgY3Vy
cmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQotICAgICAgICB0ZWFyRG93blZp
ZGVvUmVuZGVyaW5nKCk7Ci0KICAgICBzd2l0Y2ggKHByZWZlcnJlZE1vZGUpIHsKICAgICBjYXNl
IE1lZGlhUmVuZGVyaW5nTm9uZToKKyAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOwor
ICAgICAgICBicmVhazsKKwogICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ6CisgICAg
ICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7CiAgICAgICAgIGNyZWF0ZUNvbnRleHRWaWRlb1JlbmRl
cmVyKCk7CiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4NWM4
NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDExNDlmYmRlZS4uOGU0YmI0NzBjMTVjNGU4MWE2NDcy
NDY1NTc5YjMzZDVjZDM5MDVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTE3LDYgKzEx
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRF
eHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwogCiAgICAgTWVkaWFUaW1lIGN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFu
Z2UoKTsKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtNDM1LDYg
KzQzNiw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fYWxsb3dzV2lyZWxlc3NWaWRl
b1BsYXliYWNrIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRQbGF5VG9QbGF5YmFja1Rhcmdl
dCB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1fcnVubmluZ01vZGFsUGFpbnQgeyBmYWxz
ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGE0YTZkYzI2YmViZmVj
NWUyZTZhZmQyYjA4ZDA3NDViMTg1NDE2Yy4uNjE4MDNjNGI1MmQ1NjAyNDI4ZWEyNGI1ODZhMGJh
YjcyNDQ4ZDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xOTYsNiArMTk2LDcgQEAg
QGVuZAogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5
ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAgQmluYXJ5U2VtYXBob3JlIG1fc2VtYXBo
b3JlOwogfQorLSAodm9pZClpbml0V2l0aFBsYXllcjooV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiYmKXBsYXllcgogLSAodm9pZClvdXRwdXRNZWRpYURhdGFXaWxs
Q2hhbmdlOihBVlBsYXllckl0ZW1PdXRwdXQgKilzZW5kZXI7CiAtICh2b2lkKW91dHB1dFNlcXVl
bmNlV2FzRmx1c2hlZDooQVZQbGF5ZXJJdGVtT3V0cHV0ICopb3V0cHV0OwogCkBAIC0xMDcwLDkg
KzEwNzEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUFWUGxheWVyKCkKICNlbmRpZgogICAgIH0KIAotICAgIGlmIChwbGF5ZXIoKS0+aXNWaWRlb1Bs
YXllcigpKQotICAgICAgICBjcmVhdGVBVlBsYXllckxheWVyKCk7Ci0KICAgICBpZiAobV9hdlBs
YXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRlbShtX2F2UGxheWVySXRlbS5nZXQoKSk7
CiAKQEAgLTE4MDIsMTkgKzE4MDAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAgIHNl
dERlbGF5Q2FsbGJhY2tzKHRydWUpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
Ci0gICAgLy8gQ2FsbGVycyBvZiB0aGlzIHdpbGwgb2Z0ZW4gY2FsbCBjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUgZmlyc3QsCi0gICAgLy8gd2hpY2ggY2FsbHMgdXBkYXRlTGFzdFBp
eGVsQnVmZmVyLCB3aGljaCBjbGVhcnMgbV9sYXN0SW1hZ2Ugd2hlbmV2ZXIgdGhlCi0gICAgLy8g
dmlkZW8gZGVsaXZlcnMgYSBuZXcgZnJhbWUuIFRoaXMgYnJlYWtzIHZpZGVvT3V0cHV0SGFzQXZh
aWxhYmxlRnJhbWUncwotICAgIC8vIHNob3J0LWNpcmN1aXRpbmcgd2hlbiBtX2xhc3RJbWFnZSBp
cyBub24tbnVsbCwgYnV0IHRoZSB2aWRlbyBvZnRlbgotICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIG5l
dyBmcmFtZSB0byBkZWxpdmVyIHNpbmNlIHRoZSBsYXN0IHRpbWUKLSAgICAvLyBoYXNOZXdQaXhl
bEJ1ZmZlckZvckl0ZW1UaW1lIHdhcyBjYWxsZWQgYWdhaW5zdCBtX3ZpZGVvT3V0cHV0LiBUbyBh
dm9pZAotICAgIC8vIGNoYW5naW5nIHRoZSBzZW1hbnRpY3Mgb2YgdmlkZW9PdXRwdXRIYXNBdmFp
bGFibGVGcmFtZSBpbiB3YXlzIHRoYXQgbWlnaHQKLSAgICAvLyBicmVhayBvdGhlciBjYWxsZXJz
LCBsb29rIGZvciBwcm9kdWN0aW9uIG9mIGEgcmVjZW50IHBpeGVsIGJ1ZmZlciBmcm9tCi0gICAg
Ly8gdGhlIHZpZGVvIG91dHB1dCwgdG9vLgotICAgIGlmICh2aWRlb091dHB1dEhhc0F2YWlsYWJs
ZUZyYW1lKCkgfHwgKG1fdmlkZW9PdXRwdXQgJiYgbV9sYXN0UGl4ZWxCdWZmZXIpKQotICAgICAg
ICBwYWludFdpdGhWaWRlb091dHB1dChjb250ZXh0LCByZWN0KTsKLSAgICBlbHNlCi0gICAgICAg
IHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKGNvbnRleHQsIHJlY3QpOworICAgIHBhaW50V2l0aFZp
ZGVvT3V0cHV0KGNvbnRleHQsIHJlY3QpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKQEAgLTI0MzksNyArMjQyNSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQo
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV92aWRlb091dHB1dERlbGVnYXRlID0g
YWRvcHROUyhbW1dlYkNvcmVBVkZQdWxsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBtX3Zp
ZGVvT3V0cHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxv
Y10gaW5pdFdpdGhQbGF5ZXI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CiAgICAgW21fdmlkZW9PdXRw
dXQgc2V0RGVsZWdhdGU6bV92aWRlb091dHB1dERlbGVnYXRlLmdldCgpIHF1ZXVlOmdsb2JhbFB1
bGxEZWxlZ2F0ZVF1ZXVlKCldOwogCiAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIGFkZE91dHB1
dDptX3ZpZGVvT3V0cHV0LmdldCgpXTsKQEAgLTI1MjMsMTEgKzI1MDksNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBl
IHR5cGUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRX
aXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IG91dHB1dFJlY3QpCiB7Ci0gICAgLy8gSXQncyBjcnVjaWFsIHRvIG5vdCB3YWl0IHN5bmNocm9u
b3VzbHkgZm9yIHRoZSBuZXh0IGltYWdlLiBWaWRlb3MgdGhhdAotICAgIC8vIGNvbWUgZG93biB0
aGlzIHBhdGggYXJlIHBlcmZvcm1pbmcgc2xvdy1jYXNlIHNvZnR3YXJlIHVwbG9hZHMsIGFuZCBz
dWNoCi0gICAgLy8gdmlkZW9zIG1heSBub3QgcmV0dXJuIG1ldGFkYXRhIGluIGEgdGltZWx5IGZh
c2hpb24uIFVzZSB0aGUgbW9zdCByZWNlbnRseQotICAgIC8vIGF2YWlsYWJsZSBwaXhlbCBidWZm
ZXIsIGlmIGFueS4KLSAgICB1cGRhdGVMYXN0SW1hZ2UoKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2Uo
VXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJbWFnZSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yNTY3LDkgKzI1NDksMjggQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxs
Q2hhbmdlKCkKICAgICBbbV92aWRlb091dHB1dCByZXF1ZXN0Tm90aWZpY2F0aW9uT2ZNZWRpYURh
dGFDaGFuZ2VXaXRoQWR2YW5jZUludGVydmFsOjBdOwogCiAgICAgLy8gV2FpdCBmb3IgMSBzZWNv
bmQuCi0gICAgYm9vbCBzYXRpc2ZpZWQgPSBbbV92aWRlb091dHB1dERlbGVnYXRlIHNlbWFwaG9y
ZV0ud2FpdEZvcigxX3MpOworICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKKworICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM+IHRpbWVvdXRUaW1lciB7IFJ1bkxvb3A6Om1haW4oKSwgW10geworICAgICAgICBS
dW5Mb29wOjptYWluKCkuc3RvcCgpOworICAgIH0gfTsKKyAgICB0aW1lb3V0VGltZXIuc3RhcnRP
bmVTaG90KDFfcyk7CisKKyAgICBtX3J1bm5pbmdNb2RhbFBhaW50ID0gdHJ1ZTsKKyAgICBSdW5M
b29wOjpydW4oKTsKKyAgICBtX3J1bm5pbmdNb2RhbFBhaW50ID0gZmFsc2U7CisKKyAgICBib29s
IHNhdGlzZmllZCA9IHRpbWVvdXRUaW1lci5pc0FjdGl2ZSgpOwogICAgIGlmICghc2F0aXNmaWVk
KQogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgInRpbWVkIG91dCIpOworICAgIGVs
c2UKKyAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhaXRpbmcgZm9yIHZpZGVvT3V0
cHV0IHRvb2sgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFE
YXRhV2lsbENoYW5nZSgpCit7CisgICAgaWYgKG1fcnVubmluZ01vZGFsUGFpbnQpCisgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7CiB9CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRF
RF9NRURJQSkKQEAgLTM4OTksMTQgKzM5MDAsMjkgQEAgLSAodm9pZClyZXNvdXJjZUxvYWRlcjoo
QVZBc3NldFJlc291cmNlTG9hZGVyICopcmVzb3VyY2VMb2FkZXIgZGlkQ2FuY2VsTG9hZGluZ1IK
IAogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZQorQGltcGxl
bWVudGF0aW9uIFdlYkNvcmVBVkZQdWxsRGVsZWdhdGUgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gX3BhcmVudDsKK30KIAogQHN5bnRo
ZXNpemUgc2VtYXBob3JlID0gbV9zZW1hcGhvcmU7CiAKKy0gKHZvaWQpaW5pdFdpdGhQbGF5ZXI6
KFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4mJilwbGF5ZXIKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBfcGFyZW50ID0gV1RGTW92ZShwYXJlbnQpOworICAgIHJldHVybiBzZWxmOwor
fQorCiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVv
T3V0cHV0ICopb3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1h
cGhvcmUuc2lnbmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwYXJlbnQgPSBf
cGFyZW50XSB7CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPm91dHB1
dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1
ZW5jZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaAppbmRleCBkMjk4NWM3OGExOGRhNDAyMDMwNjkxN2E2NjBhODNhNTY1YmFlZDY3Li5jYWM0
ZWE1MTcwMjNlNWU3Y2JhMTlhZDZjY2FhM2VkZDU4MGFlNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAg
LTM1Myw3ICszNTMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fdmlkZW9Db250ZW50U2NhbGUg
eyAxLjAgfTsKIAogICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07Ci0gICAgYm9v
bCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX3JlbmRl
cmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYm9vbCBtX3Nob3Vs
ZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCmluZGV4IGQ5YzU4ZGU4ZjU3YjA0YTliZTQ2MTYzYzVkNjUzOThlOWI0NzVlNjMuLmUx
Y2M5OGNlZGE5YjcwY2QyMmZjY2FkYzM0Y2JkODM5MGY3NzQyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKQEAgLTExNCw2ICsxMTQsOCBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YQogICAgICwgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luKHBsYXllci0+ZG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpKQogewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOworCisgICAgYWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKIH0KICNlbmRpZgogCkBAIC00NTUsNyArNDU3
LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFjY2VsZXJh
dGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtYWtl
UmVmUHRyKG1fcGxheWVyLmdldCgpKSkKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFu
Z2VkKHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKSwgbV9pZCk7CisgICAg
ICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpB
Y2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChwbGF5ZXItPnJlbmRlcmluZ0NhbkJlQWNj
ZWxlcmF0ZWQoKSksIG1faWQpOwogfQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkK
</data>
<flag name="commit-queue"
          id="457621"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435016</attachid>
            <date>2021-08-05 13:00:55 -0700</date>
            <delta_ts>2021-08-06 08:09:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228560-20210805130054.patch</filename>
            <type>text/plain</type>
            <size>13341</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMyYjI5ZmMzMjYwMWEz
NDBkNGM3NWRjYmVmZjU2NGJiODU1MzMwOS4uYTU4YTM3NTQ0NjY0NjRjOWUzMjJiYjllOTU4NDdm
ZWUxY2E2Y2I3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA4LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1
cHBvcnQgZm9yIEFWQXNzZXRJbWFnZUdlbmVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MTMzNjI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
QSBtdWNoIG1vcmUgbWluaW1hbCBhcHByb2FjaCB0byByZW1vdmluZyBzdXBwb3J0IGZvciBBVkFz
c2V0SW1hZ2VHZW5lcmF0b3IuCisKKyAgICAgICAgVGhlIG9ubHkgdGltZSB3ZSB1c2UgYW4gQVZB
c3NldEltYWdlR2VuZXJhdG9yIChhcyBvcHBvc2VkIHRvIGFuIEFWUGxheWVySXRlbVZpZGVvT3V0
cHV0KQorICAgICAgICBpcyB3aGVuIHRoZSBsYXR0ZXIgZG9lcyBub3QgY3VycmVudGx5IGhhdmUg
YW4gYXZhaWxhYmxlIGltYWdlIGVucXVldWVkLiBCZWNhdXNlIHBhaW50aW5nCisgICAgICAgIGlz
IGEgc3luY2hyb25vdXMgb3BlcmF0aW9uLCB3ZSB1c2UgYSBzeW5jaHJvbm91cyBBUEkgKHRoZSBn
ZW5lcmF0b3IpIHRvIGNyZWF0ZSBhbiBpbWFnZQorICAgICAgICBmb3IgdGhhdCBvcGVyYXRpb24u
IEhvd2V2ZXIsIHRoaXMgY2FuIGNyZWF0ZSBkZWFkbG9ja3MgaWYgKGZvciBleGFtcGxlKSB0aGUg
cmVzb3VyY2UgbmVlZHMKKyAgICAgICAgdG8gbG9hZCBkYXRhIG9uIHRoZSBtYWluIHRocmVhZCBp
biBvcmRlciB0byBjb21wbGV0ZSB0aGUgcGFpbnRpbmcgb3BlcmF0aW9uLgorCisgICAgICAgIElu
c3RlYWQsIGFsbG93IHRoZSBtYWluIHJ1bmxvb3AgdG8gc3BpbiB3aGlsZSB3YWl0aW5nICh1cCB0
byAxX3MpIGZvciB0aGUgdmlkZW8gb3V0cHV0CisgICAgICAgIHRvIHJlY2VpdmUgYSBkZWNvZGVk
IGZyYW1lLgorCisgICAgICAgIERyaXZlLWJ5IGZpeGVzOgorICAgICAgICAtIERvbid0IGNyZWF0
ZSBhbiBBVlBsYXllckxheWVyIGF0IEFWUGxheWVyLWNyZWF0aW9uOyB0aGlzIGNhdXNlcyB0aGUg
QVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQKKyAgICAgICAgICB0byBuZXZlciByZWNlaXZlIGEgZGVj
b2RlZCBmcmFtYmUgKGFzIHRoZSBsYXllciBpcyBub3QgaW4gYSBDQUxheWVyLWhlaXJhcmNoeSku
CisgICAgICAgIC0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIHNob3VsZG4ndCBiZSAibm9uZSIg
d2hlbiB0aGUgcGFnZSBpc24ndCB2aXNpYmxlLiBXZSBhbHJlYWR5CisgICAgICAgICAganVzdCBt
YXJrIHRoZSBsYXllciBhcyAiaGlkZGVuIiBpbiB0aGF0IGNhc2UuCisgICAgICAgIC0gRG9uJ3Qg
dGVhciBkb3duIHRoZSBBVlBsYXllckl0ZW1WaWRlb091dHB1dCB3aGVuIGNyZWF0aW5nIGFuIEFW
UGxheWVyTGF5ZXI7IGl0J2xsIGp1c3QKKyAgICAgICAgICBnZXQgcmUtY3JlYXRlZCBhbnl3YXku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5k
ZXJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlk
ZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKToKKyAgICAgICAgKC1bV2ViQ29y
ZUFWRlB1bGxEZWxlZ2F0ZSBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlOl0pOgorICAgICAgICAo
LVtXZWJDb3JlQVZGUHVsbERlbGVnYXRlIHNldFBhcmVudDpdKToKKwogMjAyMS0wOC0wMyAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI4MDUzMSBhbmQgcjI4MDU4OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDBjYjFmNTI2ODYzZmFj
ZGNkNzhhNDI3NDg5YWM3ZTRkN2ZjY2QyMy4uZDMyOWYwY2NkMTE0YzBlYzY3MDJlOWE2NzE1NmU0
MTMzYjUxMGE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOC0wNCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlbW92ZSBzdXBw
b3J0IGZvciBBVkFzc2V0SW1hZ2VHZW5lcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODEz
MzYyODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIERy
aXZlLWJ5IGZpeDogd2UncmUgcGFzc2luZyB0aGUgd3JvbmcgdmFsdWUgaW50byBhY2NlbGVyYXRl
ZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpLCBhbmQKKyAgICAgICAgd2UncmUgbm90IHNldHRpbmcg
dGhlIGNvcnJlY3QgaW5pdGlhbCB2YWx1ZSBvbiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgY3Jl
YXRpb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorCiAyMDIxLTA4
LTAzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjgwNTMxIGFuZCByMjgwNTg5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiYmQ1NjBh
ZDRjYTAwMDkxYWMxOWJkM2ZlZjlhZDJmY2JlZTAwMzE2Li45NjMwZmEyNDZlZDkwY2MzZjE0OGRi
MzAxNTExMTYwZjQyZjkzNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFS
ZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVu
ZGVyaW5nTW9kZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Zpc2libGUgfHwgYXNzZXRTdGF0dXMo
KSA9PSBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNVbmtub3duKQorICAgIGlmIChhc3NldFN0YXR1
cygpID09IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1Vua25vd24pCiAgICAgICAgIHJldHVybiBN
ZWRpYVJlbmRlcmluZ05vbmU7CiAKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpICYmIG1fcGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpCkBAIC0xMjIsMTgg
KzEyMiwxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRl
b1JlbmRlcmluZygpCiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIGN1cnJlbnRNb2RlID0gY3VycmVu
dFJlbmRlcmluZ01vZGUoKTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkTW9kZSA9
IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKTsKIAotICAgIGlmIChwcmVmZXJyZWRNb2RlID09IE1l
ZGlhUmVuZGVyaW5nTm9uZSkKLSAgICAgICAgcHJlZmVycmVkTW9kZSA9IE1lZGlhUmVuZGVyaW5n
VG9Db250ZXh0OwotCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IHByZWZlcnJlZE1vZGUgJiYgY3Vy
cmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQotICAgICAgICB0ZWFyRG93blZp
ZGVvUmVuZGVyaW5nKCk7Ci0KICAgICBzd2l0Y2ggKHByZWZlcnJlZE1vZGUpIHsKICAgICBjYXNl
IE1lZGlhUmVuZGVyaW5nTm9uZToKKyAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOwor
ICAgICAgICBicmVhazsKKwogICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ6CisgICAg
ICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7CiAgICAgICAgIGNyZWF0ZUNvbnRleHRWaWRlb1JlbmRl
cmVyKCk7CiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNmE4NWM4
NDlkZWQxOTMyZDVlNmY4NTZjMTg1NWFiMDExNDlmYmRlZS4uOGU0YmI0NzBjMTVjNGU4MWE2NDcy
NDY1NTc5YjMzZDVjZDM5MDVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTE3LDYgKzEx
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRF
eHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwogCiAgICAgTWVkaWFUaW1lIGN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFu
Z2UoKTsKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtNDM1LDYg
KzQzNiw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fYWxsb3dzV2lyZWxlc3NWaWRl
b1BsYXliYWNrIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRQbGF5VG9QbGF5YmFja1Rhcmdl
dCB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1fcnVubmluZ01vZGFsUGFpbnQgeyBmYWxz
ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGE0YTZkYzI2YmViZmVj
NWUyZTZhZmQyYjA4ZDA3NDViMTg1NDE2Yy4uZTJlOTJmYWRmODAxNzQxMWNkYWRiOGVjYmE2YzUy
OWEyN2E2OGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xOTYsNiArMTk2LDcgQEAg
QGVuZAogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERlbGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5
ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAgQmluYXJ5U2VtYXBob3JlIG1fc2VtYXBo
b3JlOwogfQorLSAoaWQpaW5pdFdpdGhQbGF5ZXI6KFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQz4mJilwbGF5ZXI7CiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxD
aGFuZ2U6KEFWUGxheWVySXRlbU91dHB1dCAqKXNlbmRlcjsKIC0gKHZvaWQpb3V0cHV0U2VxdWVu
Y2VXYXNGbHVzaGVkOihBVlBsYXllckl0ZW1PdXRwdXQgKilvdXRwdXQ7CiAKQEAgLTEwNzAsOSAr
MTA3MSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIoKQogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKHBsYXllcigpLT5pc1ZpZGVvUGxh
eWVyKCkpCi0gICAgICAgIGNyZWF0ZUFWUGxheWVyTGF5ZXIoKTsKLQogICAgIGlmIChtX2F2UGxh
eWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsK
IApAQCAtMTgwMiwxOSArMTgwMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgc2V0
RGVsYXlDYWxsYmFja3ModHJ1ZSk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAK
LSAgICAvLyBDYWxsZXJzIG9mIHRoaXMgd2lsbCBvZnRlbiBjYWxsIGNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZSBmaXJzdCwKLSAgICAvLyB3aGljaCBjYWxscyB1cGRhdGVMYXN0UGl4
ZWxCdWZmZXIsIHdoaWNoIGNsZWFycyBtX2xhc3RJbWFnZSB3aGVuZXZlciB0aGUKLSAgICAvLyB2
aWRlbyBkZWxpdmVycyBhIG5ldyBmcmFtZS4gVGhpcyBicmVha3MgdmlkZW9PdXRwdXRIYXNBdmFp
bGFibGVGcmFtZSdzCi0gICAgLy8gc2hvcnQtY2lyY3VpdGluZyB3aGVuIG1fbGFzdEltYWdlIGlz
IG5vbi1udWxsLCBidXQgdGhlIHZpZGVvIG9mdGVuCi0gICAgLy8gZG9lc24ndCBoYXZlIGEgbmV3
IGZyYW1lIHRvIGRlbGl2ZXIgc2luY2UgdGhlIGxhc3QgdGltZQotICAgIC8vIGhhc05ld1BpeGVs
QnVmZmVyRm9ySXRlbVRpbWUgd2FzIGNhbGxlZCBhZ2FpbnN0IG1fdmlkZW9PdXRwdXQuIFRvIGF2
b2lkCi0gICAgLy8gY2hhbmdpbmcgdGhlIHNlbWFudGljcyBvZiB2aWRlb091dHB1dEhhc0F2YWls
YWJsZUZyYW1lIGluIHdheXMgdGhhdCBtaWdodAotICAgIC8vIGJyZWFrIG90aGVyIGNhbGxlcnMs
IGxvb2sgZm9yIHByb2R1Y3Rpb24gb2YgYSByZWNlbnQgcGl4ZWwgYnVmZmVyIGZyb20KLSAgICAv
LyB0aGUgdmlkZW8gb3V0cHV0LCB0b28uCi0gICAgaWYgKHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxl
RnJhbWUoKSB8fCAobV92aWRlb091dHB1dCAmJiBtX2xhc3RQaXhlbEJ1ZmZlcikpCi0gICAgICAg
IHBhaW50V2l0aFZpZGVvT3V0cHV0KGNvbnRleHQsIHJlY3QpOwotICAgIGVsc2UKLSAgICAgICAg
cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoY29udGV4dCwgcmVjdCk7CisgICAgcGFpbnRXaXRoVmlk
ZW9PdXRwdXQoY29udGV4dCwgcmVjdCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwpAQCAtMjQzOSw3ICsyNDI1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCgp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3ZpZGVvT3V0cHV0RGVsZWdhdGUgPSBh
ZG9wdE5TKFtbV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIG1fdmlk
ZW9PdXRwdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJDb3JlQVZGUHVsbERlbGVnYXRlIGFsbG9j
XSBpbml0V2l0aFBsYXllcjptYWtlV2Vha1B0cigqdGhpcyldKTsKICAgICBbbV92aWRlb091dHB1
dCBzZXREZWxlZ2F0ZTptX3ZpZGVvT3V0cHV0RGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xvYmFsUHVs
bERlbGVnYXRlUXVldWUoKV07CiAKICAgICBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgYWRkT3V0cHV0
Om1fdmlkZW9PdXRwdXQuZ2V0KCldOwpAQCAtMjUyMywxMSArMjUwOSw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGUg
dHlwZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdp
dGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
b3V0cHV0UmVjdCkKIHsKLSAgICAvLyBJdCdzIGNydWNpYWwgdG8gbm90IHdhaXQgc3luY2hyb25v
dXNseSBmb3IgdGhlIG5leHQgaW1hZ2UuIFZpZGVvcyB0aGF0Ci0gICAgLy8gY29tZSBkb3duIHRo
aXMgcGF0aCBhcmUgcGVyZm9ybWluZyBzbG93LWNhc2Ugc29mdHdhcmUgdXBsb2FkcywgYW5kIHN1
Y2gKLSAgICAvLyB2aWRlb3MgbWF5IG5vdCByZXR1cm4gbWV0YWRhdGEgaW4gYSB0aW1lbHkgZmFz
aGlvbi4gVXNlIHRoZSBtb3N0IHJlY2VudGx5Ci0gICAgLy8gYXZhaWxhYmxlIHBpeGVsIGJ1ZmZl
ciwgaWYgYW55LgotICAgIHVwZGF0ZUxhc3RJbWFnZSgpOworICAgIHVwZGF0ZUxhc3RJbWFnZShV
cGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKICAgICBpZiAoIW1fbGFzdEltYWdlKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTI1NjcsOSArMjU0OSwyOCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndhaXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxD
aGFuZ2UoKQogICAgIFttX3ZpZGVvT3V0cHV0IHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0
YUNoYW5nZVdpdGhBZHZhbmNlSW50ZXJ2YWw6MF07CiAKICAgICAvLyBXYWl0IGZvciAxIHNlY29u
ZC4KLSAgICBib29sIHNhdGlzZmllZCA9IFttX3ZpZGVvT3V0cHV0RGVsZWdhdGUgc2VtYXBob3Jl
XS53YWl0Rm9yKDFfcyk7CisgICAgTW9ub3RvbmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6
Om5vdygpOworCisgICAgUnVuTG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQz4gdGltZW91dFRpbWVyIHsgUnVuTG9vcDo6bWFpbigpLCBbXSB7CisgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5zdG9wKCk7CisgICAgfSB9OworICAgIHRpbWVvdXRUaW1lci5zdGFydE9u
ZVNob3QoMV9zKTsKKworICAgIG1fcnVubmluZ01vZGFsUGFpbnQgPSB0cnVlOworICAgIFJ1bkxv
b3A6OnJ1bigpOworICAgIG1fcnVubmluZ01vZGFsUGFpbnQgPSBmYWxzZTsKKworICAgIGJvb2wg
c2F0aXNmaWVkID0gdGltZW91dFRpbWVyLmlzQWN0aXZlKCk7CiAgICAgaWYgKCFzYXRpc2ZpZWQp
CiAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAidGltZWQgb3V0Iik7CisgICAgZWxz
ZQorICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAid2FpdGluZyBmb3IgdmlkZW9PdXRw
dXQgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvdXRwdXRNZWRpYURh
dGFXaWxsQ2hhbmdlKCkKK3sKKyAgICBpZiAobV9ydW5uaW5nTW9kYWxQYWludCkKKyAgICAgICAg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKIH0KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVE
X01FRElBKQpAQCAtMzg5OSwxNCArMzkwMCwyOSBAQCAtICh2b2lkKXJlc291cmNlTG9hZGVyOihB
VkFzc2V0UmVzb3VyY2VMb2FkZXIgKilyZXNvdXJjZUxvYWRlciBkaWRDYW5jZWxMb2FkaW5nUgog
CiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGUHVsbERlbGVnYXRlCitAaW1wbGVt
ZW50YXRpb24gV2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZSB7CisgICAgV2Vha1B0cjxXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBfcGxheWVyOworfQogCiBAc3ludGhl
c2l6ZSBzZW1hcGhvcmUgPSBtX3NlbWFwaG9yZTsKIAorLSAoaWQpaW5pdFdpdGhQbGF5ZXI6KFdl
YWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4mJilwbGF5ZXIKK3sKKyAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICBfcGxheWVyID0gV1RGTW92ZShwbGF5ZXIpOworICAgIHJldHVybiBzZWxmOworfQor
CiAtICh2b2lkKW91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2U6KEFWUGxheWVySXRlbVZpZGVvT3V0
cHV0ICopb3V0cHV0CiB7CiAgICAgVU5VU0VEX1BBUkFNKG91dHB1dCk7CiAgICAgbV9zZW1hcGhv
cmUuc2lnbmFsKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwbGF5ZXIgPSBfcGxh
eWVyXSB7CisgICAgICAgIGlmIChwbGF5ZXIpCisgICAgICAgICAgICBwbGF5ZXItPm91dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogLSAodm9pZClvdXRwdXRTZXF1ZW5j
ZVdhc0ZsdXNoZWQ6KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0ICopb3V0cHV0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
aAppbmRleCBkMjk4NWM3OGExOGRhNDAyMDMwNjkxN2E2NjBhODNhNTY1YmFlZDY3Li5jYWM0ZWE1
MTcwMjNlNWU3Y2JhMTlhZDZjY2FhM2VkZDU4MGFlNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTM1
Myw3ICszNTMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fdmlkZW9Db250ZW50U2NhbGUgeyAx
LjAgfTsKIAogICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07Ci0gICAgYm9vbCBt
X3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX3JlbmRlcmlu
Z0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBU
RURfTUVESUEpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYm9vbCBtX3Nob3VsZENv
bnRpbnVlQWZ0ZXJLZXlOZWVkZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCmluZGV4IGQ5YzU4ZGU4ZjU3YjA0YTliZTQ2MTYzYzVkNjUzOThlOWI0NzVlNjMuLmUxY2M5
OGNlZGE5YjcwY2QyMmZjY2FkYzM0Y2JkODM5MGY3NzQyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKQEAgLTExNCw2ICsxMTQsOCBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQog
ICAgICwgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luKHBsYXllci0+ZG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpKQogewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOworCisgICAgYWNjZWxlcmF0
ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKIH0KICNlbmRpZgogCkBAIC00NTUsNyArNDU3LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtYWtlUmVm
UHRyKG1fcGxheWVyLmdldCgpKSkKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2Vk
KHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKSwgbV9pZCk7CisgICAgICAg
IGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpBY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChwbGF5ZXItPnJlbmRlcmluZ0NhbkJlQWNjZWxl
cmF0ZWQoKSksIG1faWQpOwogfQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>