<?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>220375</bug_id>
          
          <creation_ts>2021-01-06 11:30:47 -0800</creation_ts>
          <short_desc>[GPU Process] Assertion under RenderLayerCompositor::computeCompositingRequirements()</short_desc>
          <delta_ts>2022-04-27 20:43:45 -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>Compositing</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=232125</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=239770</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221830</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rini Patel">rini_patel</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jenner</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rini_patel</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717720</commentid>
    <comment_count>0</comment_count>
    <who name="Rini Patel">rini_patel</who>
    <bug_when>2021-01-06 11:30:47 -0800</bug_when>
    <thetext>Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000003ca62262e WTFCrash + 14 (Assertions.cpp:295)
1   com.apple.WebCore             	0x00000003a77efe5b WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   com.apple.WebCore             	0x00000003ac0e882c WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;) + 3916 (RenderLayerCompositor.cpp:1125)
3   com.apple.WebCore             	0x00000003ac0e8437 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;) + 2903 (RenderLayerCompositor.cpp:1073)
4   com.apple.WebCore             	0x00000003ac0e84ea WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;) + 3082 (RenderLayerCompositor.cpp:1076)
5   com.apple.WebCore             	0x00000003ac0b2a9e WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) + 3166 (RenderLayerCompositor.cpp:848)
6   com.apple.WebCore             	0x00000003ac0e6a3b WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout() + 27 (RenderLayerCompositor.cpp:504)


Another crash with similar pattern 
ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
./rendering/RenderLayerCompositor.cpp(1125) : void WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer *, WebCore::RenderLayer &amp;, WebCore::LayerOverlapMap &amp;, WebCore::RenderLayerCompositor::CompositingState &amp;, WebCore::RenderLayerCompositor::BackingSharingState &amp;, bool &amp;)
1   0x34a622629 WTFCrash
2   0x3277efe5b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x32c0e882c WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;)
4   0x32c0e84ea WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;)
5   0x32c0e84ea WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&amp;, WebCore::LayerOverlapMap&amp;, WebCore::RenderLayerCompositor::CompositingState&amp;, WebCore::RenderLayerCompositor::BackingSharingState&amp;, bool&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717722</commentid>
    <comment_count>1</comment_count>
    <who name="Rini Patel">rini_patel</who>
    <bug_when>2021-01-06 11:33:44 -0800</bug_when>
    <thetext>Failing tests:
media/modern-media-controls/media-controller/media-controller-auto-hide.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadedmetadata.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718805</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-11 13:45:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/73012120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729874</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2021-02-16 12:46:51 -0800</bug_when>
    <thetext>There is another test that is failing, and appears to be part of this:
imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough.html 

HISTORY URL:
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fwasm%2Fjsapi%2Ffunctions%2Fentry.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731085</commentid>
    <comment_count>4</comment_count>
    <who name="Rini Patel">rini_patel</who>
    <bug_when>2021-02-18 16:26:08 -0800</bug_when>
    <thetext>Another test failing 

mported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata.html	

https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fhtml%2Fsemantics%2Fembedded-content%2Fmedia-elements%2Fevent_loadedmetadata.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731112</commentid>
    <comment_count>5</comment_count>
    <who name="Rini Patel">rini_patel</who>
    <bug_when>2021-02-18 17:20:25 -0800</bug_when>
    <thetext>Two more, adding to the TestExpectations file
imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_progress.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadeddata.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737438</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-08 19:16:14 -0800</bug_when>
    <thetext>The video gets into the accelerate rendering mode:

19:04:01.700 76909   Video 0x562bcb7c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 0
19:04:01.700 76909   Video 0x562bcb7c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 1

and we get into RenderLayerCompositor::computeCompositingRequirements() for the video&apos;s layer, but this does not evaluate to true:
  layer.needsPostLayoutCompositingUpdate() || compositingState.fullPaintOrderTraversalRequired || compositingState.descendantsRequireCompositingUpdate

so we don&apos;t compute willBeComposited.

So this is about no-one setting dirty bits on the RenderLayer when the video&apos;s canAccelerateVideoRendering state changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737439</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-08 19:17:16 -0800</bug_when>
    <thetext>Here&apos;s the RenderLayer tree state when the assertion fires:

19:04:01.700 76909   (S)tacking Context/(F)orced SC/O(P)portunistic SC, (N)ormal flow only, (O)verflow clip, (A)lpha (opacity or mask), has (B)lend mode, (I)solates blending, (T)ransform-ish, (F)ilter, Fi(X)ed position, Behaves as fi(x)ed, (C)omposited, (P)rovides backing/uses (p)rovided backing/paints to (a)ncestor, (c)omposited descendant, (s)scrolling ancestor, (t)transformed ancestor
19:04:01.700 76909   Dirty (z)-lists, Dirty (n)ormal flow lists
19:04:01.700 76909   Traversal needs: requirements (t)raversal on descendants, (b)acking or hierarchy traversal on descendants, (r)equirements traversal on all descendants, requirements traversal on all (s)ubsequent layers, (h)ierarchy traversal on all descendants, update of paint (o)rder children
19:04:01.700 76909   Update needs:    post-(l)ayout requirements, (g)eometry, (k)ids geometry, (c)onfig, layer conne(x)ion, (s)crolling tree
19:04:01.700 76909   Scrolling scope: box contents
19:04:01.700 76909   
19:04:01.700 76909   S---------C---- -- tb---- ------ 29 29 0x5630a3210 (0,0) width=800 height=600 [SA 0x562f78dc0] (layerID 230) {sc 7} RenderView 0x563439ec0
19:04:01.700 76909   S-------------- -- tb---- ------ 29 29   + 0x562f67000 (0,0) width=800 height=212 [SA 0x5630d6d20] RenderBlock 0x5636e4360 HTML 0x5621e7ca0
19:04:01.700 76909   SN------------- -- tb---- ------ 29 29     n 0x55db62a50 (262,50) width=300 height=150 RenderVideo 0x562bcb7c0 VIDEO 0x562bca2e0 id=&apos;v&apos;
19:04:01.700 76909   S-----------c-- -- tb---- ------ 29 29       + 0x55db62b58 (0,0) width=300 height=150 RenderBlock (relative positioned) 0x562bdb4e0 DIV 0x5629b9200 class=&apos;media-controls-container&apos;
19:04:01.700 76909   --------------- -- ------ ------ 29 29         + 0x55db62c60 (0,0) width=300 height=150 RenderBlock (positioned) 0x562bdb3c0 DIV 0x5629b9100 class=&apos;media-controls inline mac uses-ltr-user-interface-layout-direction&apos;
19:04:01.700 76909   S----I----C-c-- -- ------ ------ 29 29         + 0x56337a738 (6,6) width=47 height=31 (layerID 257) graphical effect RenderBlock (positioned) 0x562bdb2a0 DIV 0x562bdda80 class=&apos;controls-bar top-left&apos;
19:04:01.700 76909   --------------- -- ------ ------ 29 29           + 0x5633c8420 (0,0) width=47 height=31 RenderBlock (positioned) 0x562bdb180 DIV 0x562bdd980 class=&apos;background-tint&apos;
...

Note the &apos;tb&apos; dirty bits. There should be more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737452</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-08 20:20:39 -0800</bug_when>
    <thetext>This is caused a race between HTMLMediaElement::scheduleMediaEngineWasUpdated() and some other compositing update.

From RenderLayerCompositor&apos;s perspective, RenderLayerBacking::contentChanged(VideoChanged) needs to get called before the next compositing update where canAccelerateVideoRendering() returns true.

canAccelerateVideoRendering() depends on the creation of the MediaPlayerPrivateAVFoundationObjC in the GPU Process, which IPCs back via MediaPlayerPrivateRemote::engineUpdated() which gets to HTMLMediaElement::mediaPlayerEngineUpdated(), which does a scheduleTask() to call mediaEngineWasUpdated().

If that task hasn&apos;t run before we RenderLayerCompositor::updateCompositingLayers() then we&apos;ll assert.

Media people, why does mediaPlayerEngineUpdated() have to schedule a task when underlying state (the answer to supportsAcceleratedRendering()) has already changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737453</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-08 20:23:14 -0800</bug_when>
    <thetext>From logging:

No assertion:

20:14:15.409 80924   Video 0x4eabb77c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 0
20:14:15.409 80924   HTMLMediaElement 0x4ea4f4880 scheduleMediaEngineWasUpdated()
20:14:15.409 80924   HTMLMediaElement 0x4eabb62e0 scheduleMediaEngineWasUpdated()
20:14:15.409 80924   RenderVideo 0x4eabb77c0 updatePlayer()
20:14:15.409 80924   Video 0x4eabb77c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 0
20:14:15.410 80924   HTMLMediaElement 0x4ea4f4880 mediaEngineWasUpdated()
20:14:15.410 80924   HTMLMediaElement 0x4eabb62e0 mediaEngineWasUpdated()
20:14:15.410 80924   RenderVideo 0x4eabb77c0 updatePlayer()
20:14:15.410 80924   RenderVideo 0x4eabb77c0 updatePlayer()
20:14:15.410 80924   Video 0x4eabb77c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 1


Assertion:

20:15:16.990 80906   Video 0x4b2bcb7c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 0
20:15:16.990 80906   HTMLMediaElement 0x4b21dcd40 scheduleMediaEngineWasUpdated()
20:15:16.990 80906   HTMLMediaElement 0x4b21dd6c0 scheduleMediaEngineWasUpdated()
20:15:16.990 80906   Video 0x4b2bcb7c0 requiresImmediateCompositing 0, shouldDisplayVideo 1 canAccelerateVideoRendering 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737924</commentid>
    <comment_count>10</comment_count>
      <attachid>422794</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-09 20:44:13 -0800</bug_when>
    <thetext>Created attachment 422794
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738071</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-10 08:32:54 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Media people, why does mediaPlayerEngineUpdated() have to schedule a task
&gt; when underlying state (the answer to supportsAcceleratedRendering()) has
&gt; already changed?

Because mediaPlayerEngineUpdated() calls mediaEngineWasUpdated(), which can trigger arbitrary DOM mutations. This can happen when the call comes through many methods in HTMLMediaElement, so it is much safer to do it in a task.

Why does rendering code call directly into MediaPlayer but also depend on state that can only be set by HTMLMediaElement/HTMLVideoElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738079</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-10 09:12:38 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #11)
&gt; Why does rendering code call directly into MediaPlayer but also depend on
&gt; state that can only be set by HTMLMediaElement/HTMLVideoElement?

Rendering/compositing code needs to know whether the video can be accelerated (RenderVideo::supportsAcceleratedRendering()). It just wants a consistent state to be presented, such that state changes are matched with calls to contentChanged().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738089</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-10 09:32:00 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #12)
&gt; Rendering/compositing code needs to know whether the video can be
&gt; accelerated (RenderVideo::supportsAcceleratedRendering()). 

  Understood.

&gt; It just wants a
&gt; consistent state to be presented, such that state changes are matched with
&gt; calls to contentChanged().

  My point was that getting some state directly from `mediaPlayer()` (which should probably be a protected method as the player is an implementation detail), and some from from the element is a recipe for this kind of problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738271</commentid>
    <comment_count>14</comment_count>
      <attachid>422879</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-10 15:22:20 -0800</bug_when>
    <thetext>Created attachment 422879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738277</commentid>
    <comment_count>15</comment_count>
      <attachid>422879</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-10 15:26:36 -0800</bug_when>
    <thetext>Comment on attachment 422879
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:1021
&gt; +    bool m_chacedSupportsAcceleratedRendering { false };

&quot;m_chacedSupportsAcceleratedRendering&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738278</commentid>
    <comment_count>16</comment_count>
      <attachid>422879</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-10 15:29:33 -0800</bug_when>
    <thetext>Comment on attachment 422879
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.h:1021
&gt;&gt; +    bool m_chacedSupportsAcceleratedRendering { false };
&gt; 
&gt; &quot;m_chacedSupportsAcceleratedRendering&quot;

Sorry, should be &quot;cached&quot;. Copy&amp;paste spreads errors. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738287</commentid>
    <comment_count>17</comment_count>
      <attachid>422884</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-10 15:40:57 -0800</bug_when>
    <thetext>Created attachment 422884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738289</commentid>
    <comment_count>18</comment_count>
      <attachid>422884</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-10 15:52:45 -0800</bug_when>
    <thetext>Comment on attachment 422884
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:149
&gt; +    bool supportsAcceleratedRendering() const { return m_player &amp;&amp; m_cachedSupportsAcceleratedRendering; }

Nit: if you cleared m_cachedSupportsAcceleratedRendering in `clearMediaPlayer()`, this null-check won&apos;t be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738294</commentid>
    <comment_count>19</comment_count>
      <attachid>422884</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-10 16:02:56 -0800</bug_when>
    <thetext>Comment on attachment 422884
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.h:149
&gt;&gt; +    bool supportsAcceleratedRendering() const { return m_player &amp;&amp; m_cachedSupportsAcceleratedRendering; }
&gt; 
&gt; Nit: if you cleared m_cachedSupportsAcceleratedRendering in `clearMediaPlayer()`, this null-check won&apos;t be necessary.

Good idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738295</commentid>
    <comment_count>20</comment_count>
      <attachid>422885</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-10 16:04:05 -0800</bug_when>
    <thetext>Created attachment 422885
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738337</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-10 18:40:40 -0800</bug_when>
    <thetext>Committed r274264: &lt;https://commits.webkit.org/r274264&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422885.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422794</attachid>
            <date>2021-03-09 20:44:13 -0800</date>
            <delta_ts>2021-03-10 15:22:17 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-220375-20210309204412.patch</filename>
            <type>text/plain</type>
            <size>19070</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRjNTcyN2M5ZDQyYTFh
ZWQ0NGUxMjk0NTNjNDU5YzNlNmJlNDg3Zi4uMzEyYTE4Y2RlMzU2YzVjMTE0YTI3ODFlMzE5YWFh
ZjlkYWYxMzY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAzLTA5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBc3Nl
cnRpb24gdW5kZXIgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwMzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCk6CisKIDIwMjEtMDMtMDkg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gVGVzdCBm
YXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hlbiBtZWRpYSBp
biBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhmMmU4Y2JmOTcy
OGMwZDJkNDZhODgzZDRkNmY1NDkuLmJhMDYyZWNlOTU0NmZjMmYwZWMwOGMyMmVhZWNjNjMwN2Nk
MDEwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDMtMDkgIFBlbmcgTGl1ICA8
cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEFzc2VydGlvbiB1
bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50
cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5
ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyU2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxh
eWJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVVcGRhdGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpj
cmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisKIDIwMjEtMDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gVGVzdCBmYXN0L2ltYWdlcy9hbmltYXRl
ZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hlbiBtZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBl
bmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiN2Q5
NmViYjMyMjJiNjBmZmE0OTMxYWRhYzU3MTlhMWRkNjNhNTcxLi5kZDQ3OTBlY2U2NDcxYTQ3Yjkx
ZWZiOWU3NDUzYTlkMDAxYmE4NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTUwMDAsMTAgKzUwMDAsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lV2FzVXBkYXRlZCgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
IAotICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKLSAgICB1cGRhdGVS
ZW5kZXJlcigpOwotICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7Ci0KICAg
ICBtX21lZGlhU2Vzc2lvbi0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiAKICNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQpAQCAtNTA0Niw2ICs1MDQyLDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogICAgIG1faGF2ZVByZXBhcmVkVG9QbGF5
ID0gZmFsc2U7CiAKKyAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7Cisg
ICAgdXBkYXRlUmVuZGVyZXIoKTsKKyAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFj
aygpOworCiAgICAgc2NoZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggYThkMWVmNTFhZDdmODRmZmZjYTQ2MWM3MmYz
MjAyNmViMWNlMmViMC4uYmRkN2MyYWQzNTk5NWMyMWZhMTJlYWQ1NjJiOTgzY2NjZmRkZmYxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHko
KQogewogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uJiYgcHJveHlDb25maWd1cmF0aW9uLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29uZmlndXJhdGlvbiYmIHByb3h5Q29uZmlndXJhdGlvbikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpOwpAQCAtNjUsMTMgKzY1LDggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW4KICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fcHJveGllc0xvY2spOwogICAgIEFTU0VSVCghbV9wcm94aWVz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uOwotCiAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIGlkZW50aWZpZXIsIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKHBy
b3h5Q29uZmlndXJhdGlvbikpOwotICAgIHByb3h5LT5nZXRDb25maWd1cmF0aW9uKHBsYXllckNv
bmZpZ3VyYXRpb24pOwogICAgIG1fcHJveGllcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShwcm94
eSkpOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIocGxheWVyQ29uZmlndXJhdGlvbik7CiB9CiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmRlbGV0ZU1lZGlhUGxheWVyKE1l
ZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
aAppbmRleCAzMjMwOWQwNzZkNDk5NTg2OTc4NGNlNDJmM2U4NjFjZTljZDIzYTJjLi5kMDdmOWUy
N2U3NTU4MTMyYjUwYWNmN2YxZTVkYTBiMDIyNWE2ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTWVk
aWFQbGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlD
b25maWd1cmF0aW9uJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uJik+JiYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYpOwog
ICAgIHZvaWQgZGVsZXRlTWVkaWFQbGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVy
KTsKIAogICAgIC8vIE1lZGlhIHBsYXllciBmYWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzkxNzVlYTVjNGRjNWFhOTY5NWU4YjI5OWZh
NjZlMmU0YTFlZjYxZC4uZGI0NjY4NTUzZjIxNDk2MzI2ZTYwY2MyMmM1NjVlOTY5NmVhOGQ1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQs
NyArMjQsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQ
bGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisg
ICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKQogICAgIERl
bGV0ZU1lZGlhUGxheWVyKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
KQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSAt
PiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5k
ZXggMGFlMjY0NzI1MjcwZDAwY2RkY2Y5NTU5Y2Y3Yjk3NGYyNjEyMzY2NC4uMTg2ZWRhNDEwYWNj
NTNmMWExYmQ5NjA0ZjRkZGFmMmY4ZDViMzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNjMw
LDExICs2MzAsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2l6
ZUNoYW5nZWQoKQogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6U2l6ZUNoYW5nZWQobV9wbGF5ZXItPm5hdHVyYWxTaXpl
KCkpLCBtX2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckVuZ2luZVVwZGF0ZWQoKQotewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6RW5naW5lVXBkYXRlZCgpLCBtX2lkKTsK
LX0KLQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckFjdGl2ZVNvdXJj
ZUJ1ZmZlcnNDaGFuZ2VkKCkKIHsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFu
Z2VkKCksIG1faWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggN2Y5YjA0OGYzZWNhNWZkZjhjYmNkNTcy
MjU3ZDFhOWRkYWVjNzBjNS4uOWU0NjBmMTA1NTg5ZGEyYzFlNzQ5ODUzZGNmNTExM2Y1ZTlhOGM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yMTQsNyArMjE0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IG1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlh
UGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVy
RW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckVu
Z2luZVVwZGF0ZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVm
ZmVyc0NoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFu
Z2VzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJTZWVrYWJsZVRpbWVSYW5n
ZXNDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpp
bmRleCAwYWY3ZDllZTJhZDA1NDViMDAxNDg4OGIyYjNjZTE1OGM1MWQ4MDRhLi5iNTIzOGU3YWNl
ZDk1ZjAwODU2OGNlYjNiMDU4Mzk0ZWY3ODcwMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Q29jb2EubW0KQEAgLTU0LDcgKzU0LDggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEK
ICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAg
bV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZl
c1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKLSAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmlu
ZygpOworICAgIGlmIChwcmVwYXJlRm9yUmVuZGVyaW5nKQorICAgICAgICBtX3BsYXllci0+cHJl
cGFyZUZvclJlbmRlcmluZygpOwogICAgIG1fdmlkZW9Db250ZW50U2NhbGUgPSB2aWRlb0NvbnRl
bnRTY2FsZTsKICAgICBpZiAoIW1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCkKICAgICAgICAg
bV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRl
Rm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDk3ZjdhZGEzY2ExMjllMzhhMzU1YWY5MzM2MTc1NmZjZTBlYmNjNzUuLmRkMTVlM2E1
MTQwMzQ2NWM0MGVlN2M1MTI4YTY2MzU1OGUwZDc5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTExMSw2ICsxMTEsNyBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQogICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5n
aW5lSWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKKyAgICAsIG1fZG9j
dW1lbnRTZWN1cml0eU9yaWdpbihwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSkKIHsK
ICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIH0KQEAgLTEzMCwxMyArMTMxLDYgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKICNlbmRp
ZgogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotewotICAgIG1fY29u
ZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7Ci0gICAgbV9kb2N1bWVudFNlY3Vy
aXR5T3JpZ2luID0gV1RGTW92ZShkb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsKLSAgICBtX3BsYXll
ci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlBy
ZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewogICAg
IGF1dG8gc2NhbGUgPSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwpAQCAtMTgxLDkg
KzE3NSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBVUkwm
IHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgICAgICBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwogICAgIH0KIAotICAgIGNvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkxvYWQo
dXJsLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSwga2V5U3lzdGVtKSwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShhdXRvJiYgY29uZmlndXJhdGlvbikgewotICAg
ICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9jb25maWd1cmF0aW9u
ID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpMb2FkKHVybCwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSwgY29udGVudFR5cGUsIGtleVN5c3RlbSksIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byYmIGNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2NvbmZpZ3Vy
YXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgICAgICBtX3BsYXllci0+bWVkaWFF
bmdpbmVVcGRhdGVkKCk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTY2MSw5ICs2NTgsMTIgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IENvbnRlbnRUeXBlJiBjb250ZW50VHkKIHsKICAgICBpZiAobV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyID09IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0
aW9uTVNFKSB7CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZU1lZGlhU291cmNlSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6TG9hZE1lZGlhU291cmNlKHVy
bCwgY29udGVudFR5cGUsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
d2ViTVBhcnNlckVuYWJsZWQoKSwgaWRlbnRpZmllciksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0oYXV0byYmIGNvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShj
b25maWd1cmF0aW9uKTsKKyAgICAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6TG9hZE1lZGlhU291cmNlKHVybCwgY29u
dGVudFR5cGUsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTVBh
cnNlckVuYWJsZWQoKSwgaWRlbnRpZmllciksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgdGhpc10oYXV0byYmIGNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NvbmZpZ3VyYXRp
b24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgICAgICAgICAgbV9wbGF5ZXItPm1lZGlh
RW5naW5lVXBkYXRlZCgpOwogICAgICAgICB9LCBtX2lkKTsKICAgICAgICAgbV9tZWRpYVNvdXJj
ZVByaXZhdGUgPSBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgaWRlbnRpZmllciwgbV9tYW5hZ2VyLnR5cGVDYWNoZShtX3Jl
bW90ZUVuZ2luZUlkZW50aWZpZXIpLCAqdGhpcywgY2xpZW50KTsKIApAQCAtMTIyMSwxMSArMTIy
MSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXNvdXJjZU5vdFN1cHBvcnRl
ZCgpCiAgICAgbV9wbGF5ZXItPnJlc291cmNlTm90U3VwcG9ydGVkKCk7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVVcGRhdGVkKCkKLXsKLSAgICBtX3BsYXllci0+
bWVkaWFFbmdpbmVVcGRhdGVkKCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7CiAgICAgbV9wbGF5ZXItPmFjdGl2ZVNv
dXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBjOTk1
MjE5NzVhMWQ3NjNkMTA5NTUxZDg0N2ZhNmQ0OGFiZDRjOWJmLi45MjRhZmZhNDZlNzU0NjhkYmI3
ODgyZTZkMThhNTM2YjIzNmFmNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTgy
LDggKzgyLDYgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3Jl
OjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXImKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCk7CiAKLSAgICB2b2lk
IHNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKLQogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICB2b2lkIGludmFs
aWRhdGUoKSB7IG1faW52YWxpZCA9IHRydWU7IH0KQEAgLTE0NCw4ICsxNDIsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZW5kSDJQaW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8V1RGOjpTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKT4mJik7CiAg
ICAgdm9pZCByZXNvdXJjZU5vdFN1cHBvcnRlZCgpOwogCi0gICAgdm9pZCBlbmdpbmVVcGRhdGVk
KCk7Ci0KICAgICB2b2lkIGFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CiAKICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgppbmRleCA1MDY0ZTlkMTU4MTNkYjM2YTYwNzJjYzFjNTJlMTQ5MzdmYTc3MDAyLi42
OTkzNDA3Yjc0Y2U3N2Q2MjA0MzdlZGFjN2Y1MGI0ZTBmMjBjYmQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNzEsOCArNzEsNiBAQCBtZXNzYWdl
cyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAgICAgU2VuZEgy
UGluZyhVUkwgdXJsKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIFJlc291cmNlTm90U3VwcG9ydGVkKCkKIAotICAgIEVuZ2lu
ZVVwZGF0ZWQoKQotCiAgICAgQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKQogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCAx
ZTc3ZGM4ZDAxNzVmZDJmNDc3NTNhODRhNWE1NDljOGY2ZjI3ZjZiLi42NDk3Mzg0ZDE0Y2QwM2I0
MWQ2MDhjYzA5ZDQ5MTJhNDllNDZiOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CkBAIC0xNjUsMTYgKzE2NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAgcHJveHlD
b25maWd1cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudFNlY3VyaXR5T3Jp
Z2luOwogCiAgICAgYXV0byBpZGVudGlmaWVyID0gTWVkaWFQbGF5ZXJJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpOwotICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1
cmF0aW9uOwotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllciwgZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IFdU
Rk1vdmUoZG9jdW1lbnRTZWN1cml0eU9yaWdpbildKGF1dG8mJiBwbGF5ZXJDb25maWd1cmF0aW9u
KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZGVudGlm
aWVyKSkKLSAgICAgICAgICAgIHBsYXllci0+c2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKHBsYXll
ckNvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGRvY3VtZW50U2VjdXJpdHlPcmlnaW4pKTsKLSAgICB9
OwotCi0gICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFQbGF5ZXIoaWRlbnRpZmllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1
cmF0aW9uKSwgY29tcGxldGlvbkhhbmRsZXIsIDApOworICAgIGdwdVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBwcm94eUNvbmZpZ3VyYXRpb24pLCAwKTsKIAogICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlm
aWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgbV9wbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBt
YWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDYyNWI3MzliYjMyZjMxMDJkOGYw
YTgzYTJkN2FmMTMzZmEyYjE2NS4uMTQyNThhMjYwNjJlMzEwZjg2NTljYzAyZTIyYzNkODBhNWJm
NTViNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTAzLTA5ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBc3NlcnRpb24gdW5kZXIg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMy0wOSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBUZXN0IGZhc3QvaW1hZ2VzL2FuaW1hdGVk
LWltYWdlLW1wNC5odG1sIHRpbWVzIG91dCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlzIGVu
YWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGJj
MTIzNmQ5YjUxMjRkMGExNzAyZjliMDU1ODMwNjYxMWRiYjkwMy4uZWM4MjNiYmE0NjM4NDkzMGU5
OGMyZjAxNjVhM2ViNGEzYzU5M2RhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI1Niw5ICsyNTYsOSBAQCB3ZWJraXQub3JnL2IvMjIxODE5IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbQog
d2Via2l0Lm9yZy9iLzIyMTc4MyBbIERlYnVnIF0gbG9hZGVyL2NoYW5nZS1zcmMtZHVyaW5nLWlm
cmFtZS1sb2FkLWNyYXNoLmh0bWwgWyBTa2lwIF0KIAogIyB3ZWJraXQub3JnL2IvMjIwMzc1Ci1b
IERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRhLmh0bWwg
WyBDcmFzaCBQYXNzIF0KLVsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJv
Z3Jlc3MuaHRtbCBbIENyYXNoIFBhc3MgXQotWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9yZWFkeVN0YXRlX2R1cmluZ19sb2FkZWRkYXRhLmh0bWwgWyBDcmFzaCBQYXNzIF0KKyMgWyBE
ZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRtZXRhZGF0YS5odG1sIFsg
Q3Jhc2ggUGFzcyBdCisjIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJv
Z3Jlc3MuaHRtbCBbIENyYXNoIFBhc3MgXQorIyBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZGRhdGEuaHRtbCBbIENyYXNoIFBhc3MgXQogCiB3
ZWJraXQub3JnL2IvMjIyNTY5IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLWlu
dGVycnVwdGVkLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422879</attachid>
            <date>2021-03-10 15:22:20 -0800</date>
            <delta_ts>2021-03-10 15:40:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220375-20210310152220.patch</filename>
            <type>text/plain</type>
            <size>23650</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRjNTcyN2M5ZDQyYTFh
ZWQ0NGUxMjk0NTNjNDU5YzNlNmJlNDg3Zi4uY2EwNmNkZmE3ZjkyOTZlYTMwODI4YjJmMWU3NjJm
MWEwZjEzMjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAzLTEwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBc3Nl
cnRpb24gdW5kZXIgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwMzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgYE1lZGlhUGxheWVyYCBjYWxscyBgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNV
cGRhdGVkKClgIHdoZW4gYSBtZWRpYSBlbGVtZW50CisgICAgICAgIGxvYWRzIGEgbmV3IFVSTCBh
bmQgYE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKClgIG1heSBjaGFu
Z2UgZnJvbQorICAgICAgICBmYWxzZSB0byB0cnVlIGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIs
IGBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKWAKKyAgICAgICAgZG9l
cyBub3Qgbm90aWZ5IHRoZSByZW5kZXJlciBhYm91dCB0aGUgY2hhbmdlIGluIHRoZSBzYW1lIHJ1
biBsb29wLiBJbnN0ZWFkLCBpdAorICAgICAgICBzY2hlZHVsZXMgYSB0YXNrIHRvIGRvIHRoYXQu
IFRoaXMgbGVhZHMgdG8gYSByYWNlIGNvbmRpdGlvbiB0aGF0CisgICAgICAgIGBSZW5kZXJMYXll
ckJhY2tpbmc6OmNvbnRlbnRDaGFuZ2VkKFZpZGVvQ2hhbmdlZClgIGdldHMgY2FsbGVkIGFmdGVy
IHRoZSBjb21wb3NpdGluZworICAgICAgICB1cGRhdGUgd2hlcmUgYFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKClgIHJldHVybnMgdHJ1ZS4KKyAgICAg
ICAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgcmVuZGVyZXIgY2hlY2tzIGBNZWRpYVBsYXllcjo6c3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYAorICAgICAgICBpbiBgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoKWAsIHdoaWNoIGNoYW5nZXMgaXRz
IHZhbHVlCisgICAgICAgIHdoZW4gYE1lZGlhUGxheWVyYCBjYWxscyBgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKClgLgorCisgICAgICAgIFRvIGZpeCB0aGlzIHJhY2Ug
Y29uZGl0aW9uLCBgSFRNTE1lZGlhRWxlbWVudGAgbmVlZHMgdG8gbm90aWZ5IGBSZW5kZXJWaWRl
b2AgYW5kCisgICAgICAgIGNoYW5nZXMgdGhlIGBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
YCBwcm9wZXJ0eSBzZWVuIGZyb20gcmVuZGVyZXIncyBwZXJzcGVjdGl2ZQorICAgICAgICBpbiB0
aGUgc2FtZSBydW4gbG9vcC4gV2l0aCB0aGlzIHBhdGNoLCBgSFRNTE1lZGlhRWxlbWVudGAga2Vl
cHMgYSBjYWNoZWQgdmFsdWUgb2YKKyAgICAgICAgYE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKClgLCBhbmQgb25seSB1cGRhdGVzIGl0cyB2YWx1ZSB3aGVuCisgICAg
ICAgIGBIVE1MTWVkaWFFbGVtZW50YCBub3RpZmllcyB0aGUgcmVuZGVyZXIuIEluIGFkZGl0aW9u
LCBgUmVuZGVyVmlkZW9gIGNoZWNrcworICAgICAgICBgSFRNTE1lZGlhRWxlbWVudDo6c3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYCBpbnN0ZWFkIG9mCisgICAgICAgIGBNZWRpYVBsYXll
cjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYCwgc28gdGhhdCB0aGUgcmVuZGVyZXIg
d2lsbAorICAgICAgICBzZWUgdGhlIG5ldyB2YWx1ZSBvZiBgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZ2AgYW5kIHJlY2VpdmUgdGhlIGNvbnRlbnQKKyAgICAgICAgY2hhbmdlIG5vdGlmaWNh
dGlvbiBpbiB0aGUgc2FtZSBydW4gbG9vcC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEZpeCBh
c3NlcnRpb24gZmFpbHVyZXMgaW4gdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdp
bmVXYXNVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWRlbzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisKIDIw
MjEtMDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
UF0gVGVzdCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hl
biBtZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhm
MmU4Y2JmOTcyOGMwZDJkNDZhODgzZDRkNmY1NDkuLjg3ZmFlZTk1OTMyMWFiOTQ1M2YwMTczZWQ0
ZGRhNmVjZTRhNTA4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDMtMTAgIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEFz
c2VydGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuICJHUFUgUHJvY2VzczogTWVkaWEiIGlzIGVuYWJsZWQsIGBNZWRpYVBsYXllcmAg
d2lsbCBjYWxsIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAKKyAgICAgICAgdGhyZWUgdGlt
ZXMgd2hlbiBhIG1lZGlhIGVsZW1lbnQgdHJpZXMgdG8gbG9hZCBhIFVSTC4gVGhlIHRocmVlIGNh
bGxzIGhhcHBlbiBhdCB0aGUKKyAgICAgICAgZm9sbG93aW5nIHRpbWUgcG9pbnRzOgorICAgICAg
ICAxKSBgTWVkaWFQbGF5ZXJgIGNyZWF0ZXMgYSBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYC4K
KyAgICAgICAgMikgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZWAgcmVjZWl2ZXMgdGhlIHJlc3Bv
bnNlIG9mIGEgImNyZWF0ZU1lZGlhUGxheWVyIiBtZXNzYWdlCisgICAgICAgIGZyb20gdGhlIEdQ
VSBwcm9jZXNzIGFuZCBnZXRzIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSAicmVt
b3RlIiBtZWRpYSBwbGF5ZXIuCisgICAgICAgIDMpIFRoZSBgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eWAgY3JlYXRlcyBhIGBNZWRpYVBsYXllclByaXZhdGVgIGluIHRoZSBHUFUgcHJvY2VzcyBhbmQK
KyAgICAgICAgbm90aWZ5IHRoZSBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYCBpbiB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLgorCisgICAgICAgIFRoZSBzZWNvbmQgY2FsbCBvZiBgbWVkaWFQbGF5
ZXJFbmdpbmVVcGRhdGVkKClgIGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHBsYXllcidzCisg
ICAgICAgIGNvbmZpZ3VyYXRpb24gYXQgdGhhdCB0aW1lIGlzIHNpbWlsYXIgdG8gYE51bGxNZWRp
YVBsYXllclByaXZhdGVgLiBUaGlzIHBhdGNoIHJlbW92ZXMgaXQuCisKKyAgICAgICAgRm9yIHRo
ZSB0aGlyZCBjYWxsIG9mIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAsIHdlIGhhdmUgdG8g
bWFrZSBzdXJlIHRoYXQKKyAgICAgICAgdGhlIGBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVgIGhh
cyByZWNlaXZlZCB0aGUgY29uZmlndXJhdGlvbiB1cGRhdGUgZnJvbSB0aGUgR1BVCisgICAgICAg
IHByb2Nlc3MgYmVmb3JlIHRoZSBjYWxsLiBUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0
aGUgbWVzc2FnZQorICAgICAgICBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpFbmdpbmVVcGRh
dGVkYCwgYW5kIGxldCBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYAorICAgICAgICBkZWNpZGUg
d2hlbiB0byBjYWxsIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxh
eWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgVGhlIGBwbGF5ZXJDb25maWd1cmF0aW9u
YCBpcyBtZWFuaW5nbGVzcyBpbiB0aGlzIHN0ZXAgc28gd2UgY2FuIHJlbW92ZSBpdC4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBk
YXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lVXBkYXRl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisKIDIwMjEt
MDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0g
VGVzdCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hlbiBt
ZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBiN2Q5NmViYjMyMjJiNjBmZmE0OTMxYWRhYzU3MTlhMWRkNjNh
NTcxLi5jMzg1MTAyOWMzOTJmZjkxOGVlODNiMjhlNWU0MWIwMzJlOTU3ZjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTUwMDEsNiArNTAwMSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxs
YmFjaygpOworICAgIG1fY2hhY2VkU3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyA9IG1fcGxh
eWVyICYmIG1fcGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7CiAgICAgdXBk
YXRlUmVuZGVyZXIoKTsKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE4ZDY5MWUxZjYyOTEy
YmY4ZDcwZjJkY2YyZjRiZWI2NmMyZDhlODcuLmQ2ZjY0YTA2ODlkYmNmMWE1NzkzZDIwYzcxMTRi
MGE5MWE0MzI5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0x
NDYsNiArMTQ2LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxFbGVtZW50Ojp3ZWFrUHRyRmFj
dG9yeTsKIAogICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gcGxheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF5ZXI7IH0KKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllciAmJiBtX2NoYWNlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmc7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
QEAgLTEwMTcsNiArMTAxOCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFJlZlB0cjxNZWRp
YVBsYXllcj4gbV9wbGF5ZXI7CisgICAgYm9vbCBtX2NoYWNlZFN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcgeyBmYWxzZSB9OwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2Fk
IHsgUHJlbG9hZDo6QXV0byB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcAppbmRleCA0YTZiZTMxNzMxNGQwYzQyNDFiYzg5YzFiNGU2NzgzOTM4YTMxMDYyLi5jNmQw
NDQxNjZjY2ZkNWJjN2M4ZjE5ZTBhYWJjMjFjNTgwMzgyMWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIFJlbmRlclZp
ZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZgogCiAgICAgaWYgKGRpc3BsYXlpbmdQb3N0ZXIpCiAgICAgICAgIHBhaW50SW50
b1JlY3QocGFpbnRJbmZvLCByZWN0KTsKLSAgICBlbHNlIGlmICghdmlkZW9FbGVtZW50KCkuaXNG
dWxsc2NyZWVuKCkgfHwgIW1lZGlhUGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkpIHsKKyAgICBlbHNlIGlmICghdmlkZW9FbGVtZW50KCkuaXNGdWxsc2NyZWVuKCkgfHwgIXZp
ZGVvRWxlbWVudCgpLnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSkgewogICAgICAgICBp
ZiAocGFpbnRJbmZvLnBhaW50QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6RmxhdHRl
bkNvbXBvc2l0aW5nTGF5ZXJzKSkKICAgICAgICAgICAgIGNvbnRleHQucGFpbnRGcmFtZUZvck1l
ZGlhKCptZWRpYVBsYXllciwgcmVjdCk7CiAgICAgICAgIGVsc2UKQEAgLTI5NCw5ICsyOTQsNyBA
QCBMYXlvdXRVbml0IFJlbmRlclZpZGVvOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdAog
CiBib29sIFJlbmRlclZpZGVvOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQoKS5wbGF5ZXIoKSkKLSAgICAg
ICAgcmV0dXJuIHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOwotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gdmlkZW9FbGVtZW50KCkuc3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpOwogfQogCiB2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVyYXRlZFJlbmRlcmlu
Z1N0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCBhOGQx
ZWY1MWFkN2Y4NGZmZmNhNDYxYzcyZjMyMDI2ZWIxY2UyZWIwLi5iZGQ3YzJhZDM1OTk1YzIxZmEx
MmVhZDU2MmI5ODNjY2NmZGRmZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAK
QEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6On5SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRl
bnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBwcm94eUNvbmZp
Z3VyYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgcHJveHlDb25maWd1
cmF0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk7CkBAIC02NSwxMyArNjUsOCBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbgogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm94aWVzTG9jayk7
CiAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwogCi0gICAgUmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0KICAgICBh
dXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRl
bnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2lu
ZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1cmF0aW9uKSk7Ci0gICAgcHJveHktPmdl
dENvbmZpZ3VyYXRpb24ocGxheWVyQ29uZmlndXJhdGlvbik7CiAgICAgbV9wcm94aWVzLmFkZChp
ZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihwbGF5
ZXJDb25maWd1cmF0aW9uKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6ZGVsZXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDMyMzA5ZDA3NmQ0OTk1ODY5Nzg0Y2U0MmYz
ZTg2MWNlOWNkMjNhMmMuLmQwN2Y5ZTI3ZTc1NTgxMzJiNTBhY2Y3ZjFlNWRhMGIwMjI1YTZmZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKT4mJik7CisgICAgdm9pZCBjcmVh
dGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCBkZWxldGVNZWRpYVBsYXllcihXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVkaWEgcGxheWVyIGZhY3RvcnkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjOTE3
NWVhNWM0ZGM1YWE5Njk1ZThiMjk5ZmE2NmUyZTRhMWVmNjFkLi5kYjQ2Njg1NTNmMjE0OTYzMjZl
NjBjYzIyYzU2NWU5Njk2ZWE4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKLSAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24p
IC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVy
Q29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94
eUNvbmZpZ3VyYXRpb24pCiAgICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBHZXRTdXBwb3J0ZWRUeXBlcyhlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25v
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAppbmRleCAwYWUyNjQ3MjUyNzBkMDBjZGRjZjk1NTljZjdiOTc0
ZjI2MTIzNjY0Li4xODZlZGE0MTBhY2M1M2YxYTFiZDk2MDRmNGRkYWYyZjhkNWIzNzA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCkBAIC02MzAsMTEgKzYzMCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaXplQ2hhbmdlZCgpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpTaXplQ2hhbmdl
ZChtX3BsYXllci0+bmF0dXJhbFNpemUoKSksIG1faWQpOwogfQogCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCi17Ci0gICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpF
bmdpbmVVcGRhdGVkKCksIG1faWQpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKQogewogICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA3
ZjliMDQ4ZjNlY2E1ZmRmOGNiY2Q1NzIyNTdkMWE5ZGRhZWM3MGM1Li45ZTQ2MGYxMDU1ODlkYTJj
MWU3NDk4NTNkY2Y1MTEzZjVlOWE4YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTIxNCw3ICsyMTQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgp
IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgpIGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIG1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRp
YVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4IDBhZjdkOWVlMmFkMDU0NWIwMDE0ODg4YjJiM2Nl
MTU4YzUxZDgwNGEuLmI1MjM4ZTdhY2VkOTVmMDA4NTY4Y2ViM2IwNTgzOTRlZjc4NzAyYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtNTQsNyArNTQsOCBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdN
b2RlKHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAg
ICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwotICAgIG1fcGxh
eWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CisgICAgaWYgKHByZXBhcmVGb3JSZW5kZXJpbmcp
CisgICAgICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAgICAgbV92aWRlb0Nv
bnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIGlmICghbV9pbmxpbmVMYXllckhv
c3RpbmdDb250ZXh0KQogICAgICAgICBtX2lubGluZUxheWVySG9zdGluZ0NvbnRleHQgPSBMYXll
ckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOTdmN2FkYTNjYTEyOWUzOGEzNTVhZjkzMzYx
NzU2ZmNlMGViY2M3NS4uZGQxNWUzYTUxNDAzNDY1YzQwZWU3YzUxMjhhNjYzNTU4ZTBkNzkwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTExLDYgKzExMSw3IEBAIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVy
KiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5ZXJJ
ZGVudGlmaWVyKQorICAgICwgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luKHBsYXllci0+ZG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpKQogewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQpA
QCAtMTMwLDEzICsxMzEsNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3VtZW50U2VjdXJp
dHlPcmlnaW4pCi17Ci0gICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9u
KTsKLSAgICBtX2RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBXVEZNb3ZlKGRvY3VtZW50U2VjdXJp
dHlPcmlnaW4pOwotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNo
LCBib29sIHByZXBhcmUpCiB7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250
ZW50c1NjYWxlKCk7CkBAIC0xODEsOSArMTc1LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
CiAgICAgICAgIHNhbmRib3hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAg
fQogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6TG9hZCh1cmwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGNvbnRl
bnRUeXBlLCBrZXlTeXN0ZW0pLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGF1dG8m
JiBjb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdl
YWtUaGlzLT5tX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OkxvYWQodXJsLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSwga2V5
U3lzdGVtKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiYgY29u
ZmlndXJhdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7Cisg
ICAgICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKICAgICB9LCBtX2lkKTsKIH0K
IApAQCAtNjYxLDkgKzY1OCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogewogICAgIGlm
IChtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIgPT0gTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0UpIHsKICAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgICAgICBjb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpMb2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBpZGVudGlmaWVyKSwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShhdXRvJiYgY29uZmlndXJhdGlvbikgewot
ICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nv
bmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgICAgICBjb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpM
b2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBpZGVudGlmaWVyKSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiYgY29uZmlndXJhdGlvbikgewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CisgICAg
ICAgICAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiAgICAgICAgIH0sIG1faWQp
OwogICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZSA9IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBt
X21hbmFnZXIudHlwZUNhY2hlKG1fcmVtb3RlRW5naW5lSWRlbnRpZmllciksICp0aGlzLCBjbGll
bnQpOwogCkBAIC0xMjIxLDExICsxMjIxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlc291cmNlTm90U3VwcG9ydGVkKCkKICAgICBtX3BsYXllci0+cmVzb3VyY2VOb3RTdXBw
b3J0ZWQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmVuZ2luZVVwZGF0
ZWQoKQotewotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKLX0KLQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKIHsK
ICAgICBtX3BsYXllci0+YWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCmluZGV4IGM5OTUyMTk3NWExZDc2M2QxMDk1NTFkODQ3ZmE2ZDQ4YWJkNGM5
YmYuLjkyNGFmZmE0NmU3NTQ2OGRiYjc4ODJlNmQxOGE1MzZiMjM2YWY3NjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaApAQCAtODIsOCArODIsNiBAQCBwdWJsaWM6CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUoKTsKIAotICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mJiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOwotCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0gdHJ1ZTsgfQpAQCAt
MTQ0LDggKzE0Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRIMlBpbmcoY29uc3QgVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXVEY6OlNlY29uZHMsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+JiYpPiYmKTsKICAgICB2b2lkIHJlc291cmNlTm90U3VwcG9ydGVkKCk7CiAK
LSAgICB2b2lkIGVuZ2luZVVwZGF0ZWQoKTsKLQogICAgIHZvaWQgYWN0aXZlU291cmNlQnVmZmVy
c0NoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4IDUwNjRlOWQxNTgxM2RiMzZhNjA3
MmNjMWM1MmUxNDkzN2ZhNzcwMDIuLjY5OTM0MDdiNzRjZTc3ZDYyMDQzN2VkYWM3ZjUwYjRlMGYy
MGNiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBA
IC03MSw4ICs3MSw2IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RS
ZWZDb3VudGVkIHsKICAgICBTZW5kSDJQaW5nKFVSTCB1cmwpIC0+IChFeHBlY3RlZDxTZWNvbmRz
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb3VyY2VOb3RT
dXBwb3J0ZWQoKQogCi0gICAgRW5naW5lVXBkYXRlZCgpCi0KICAgICBBY3RpdmVTb3VyY2VCdWZm
ZXJzQ2hhbmdlZCgpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwCmluZGV4IDFlNzdkYzhkMDE3NWZkMmY0Nzc1M2E4NGE1YTU0OWM4ZjZm
MjdmNmIuLjY0OTczODRkMTRjZDAzYjQxZDYwOGNjMDlkNDkxMmE0OWU0NmI5OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE2NSwxNiArMTY1LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVSZW0KICAgICBwcm94eUNvbmZpZ3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdp
biA9IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAKICAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRp
YVBsYXllcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyLCBkb2N1
bWVudFNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZShkb2N1bWVudFNlY3VyaXR5T3JpZ2luKV0oYXV0
byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlz
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIg
PSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIpKQotICAgICAgICAgICAgcGxheWVyLT5zZXRDb25m
aWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29uZmlndXJhdGlvbiksIFdURk1vdmUoZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbikpOwotICAgIH07Ci0KLSAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBwcm94eUNvbmZpZ3VyYXRpb24pLCBjb21wbGV0aW9uSGFuZGxlciwgMCk7Cisg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIs
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCiAgICAg
YXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX3Bs
YXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA0NjI1YjczOWJiMzJmMzEwMmQ4ZjBhODNhMmQ3YWYxMzNmYTJiMTY1Li45YmUwMDQzNjY0MjRj
YWMwZWE4NTdiMmViMTc3ZDU2NDE1MzhiZTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEt
MDMtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdIEFzc2VydGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTAz
LTA5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFRl
c3QgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgdGltZXMgb3V0IHdoZW4gbWVk
aWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkYmMxMjM2ZDliNTEyNGQwYTE3MDJmOWIwNTU4MzA2NjExZGJi
OTAzLi5hNDA5MGE0MDlkODcwN2U5MmQxOGQzNmM3MTQ1N2FiY2Q2MGRjYTRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjU1LDExICsyNTUsNiBAQCB3
ZWJraXQub3JnL2IvMjIxODE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtbQogCiB3ZWJraXQub3JnL2IvMjIxNzgzIFsgRGVidWcgXSBs
b2FkZXIvY2hhbmdlLXNyYy1kdXJpbmctaWZyYW1lLWxvYWQtY3Jhc2guaHRtbCBbIFNraXAgXQog
Ci0jIHdlYmtpdC5vcmcvYi8yMjAzNzUKLVsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
ZXZlbnRfbG9hZGVkbWV0YWRhdGEuaHRtbCBbIENyYXNoIFBhc3MgXQotWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCi1bIERl
YnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZGRhdGEu
aHRtbCBbIENyYXNoIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvMjIyNTY5IGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWEtc3RyZWFtLXRyYWNrLWludGVycnVwdGVkLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAog
IyMjIEVORCBPRiAoMSkgQ2xhc3NpZmllZCBmYWlsdXJlcyB3aXRoIGJ1ZyByZXBvcnRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422884</attachid>
            <date>2021-03-10 15:40:57 -0800</date>
            <delta_ts>2021-03-10 15:52:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220375-20210310154056.patch</filename>
            <type>text/plain</type>
            <size>23650</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRjNTcyN2M5ZDQyYTFh
ZWQ0NGUxMjk0NTNjNDU5YzNlNmJlNDg3Zi4uY2EwNmNkZmE3ZjkyOTZlYTMwODI4YjJmMWU3NjJm
MWEwZjEzMjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAzLTEwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBc3Nl
cnRpb24gdW5kZXIgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwMzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgYE1lZGlhUGxheWVyYCBjYWxscyBgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNV
cGRhdGVkKClgIHdoZW4gYSBtZWRpYSBlbGVtZW50CisgICAgICAgIGxvYWRzIGEgbmV3IFVSTCBh
bmQgYE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKClgIG1heSBjaGFu
Z2UgZnJvbQorICAgICAgICBmYWxzZSB0byB0cnVlIGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIs
IGBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKWAKKyAgICAgICAgZG9l
cyBub3Qgbm90aWZ5IHRoZSByZW5kZXJlciBhYm91dCB0aGUgY2hhbmdlIGluIHRoZSBzYW1lIHJ1
biBsb29wLiBJbnN0ZWFkLCBpdAorICAgICAgICBzY2hlZHVsZXMgYSB0YXNrIHRvIGRvIHRoYXQu
IFRoaXMgbGVhZHMgdG8gYSByYWNlIGNvbmRpdGlvbiB0aGF0CisgICAgICAgIGBSZW5kZXJMYXll
ckJhY2tpbmc6OmNvbnRlbnRDaGFuZ2VkKFZpZGVvQ2hhbmdlZClgIGdldHMgY2FsbGVkIGFmdGVy
IHRoZSBjb21wb3NpdGluZworICAgICAgICB1cGRhdGUgd2hlcmUgYFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKClgIHJldHVybnMgdHJ1ZS4KKyAgICAg
ICAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgcmVuZGVyZXIgY2hlY2tzIGBNZWRpYVBsYXllcjo6c3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYAorICAgICAgICBpbiBgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoKWAsIHdoaWNoIGNoYW5nZXMgaXRz
IHZhbHVlCisgICAgICAgIHdoZW4gYE1lZGlhUGxheWVyYCBjYWxscyBgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKClgLgorCisgICAgICAgIFRvIGZpeCB0aGlzIHJhY2Ug
Y29uZGl0aW9uLCBgSFRNTE1lZGlhRWxlbWVudGAgbmVlZHMgdG8gbm90aWZ5IGBSZW5kZXJWaWRl
b2AgYW5kCisgICAgICAgIGNoYW5nZXMgdGhlIGBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
YCBwcm9wZXJ0eSBzZWVuIGZyb20gcmVuZGVyZXIncyBwZXJzcGVjdGl2ZQorICAgICAgICBpbiB0
aGUgc2FtZSBydW4gbG9vcC4gV2l0aCB0aGlzIHBhdGNoLCBgSFRNTE1lZGlhRWxlbWVudGAga2Vl
cHMgYSBjYWNoZWQgdmFsdWUgb2YKKyAgICAgICAgYE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKClgLCBhbmQgb25seSB1cGRhdGVzIGl0cyB2YWx1ZSB3aGVuCisgICAg
ICAgIGBIVE1MTWVkaWFFbGVtZW50YCBub3RpZmllcyB0aGUgcmVuZGVyZXIuIEluIGFkZGl0aW9u
LCBgUmVuZGVyVmlkZW9gIGNoZWNrcworICAgICAgICBgSFRNTE1lZGlhRWxlbWVudDo6c3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYCBpbnN0ZWFkIG9mCisgICAgICAgIGBNZWRpYVBsYXll
cjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYCwgc28gdGhhdCB0aGUgcmVuZGVyZXIg
d2lsbAorICAgICAgICBzZWUgdGhlIG5ldyB2YWx1ZSBvZiBgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZ2AgYW5kIHJlY2VpdmUgdGhlIGNvbnRlbnQKKyAgICAgICAgY2hhbmdlIG5vdGlmaWNh
dGlvbiBpbiB0aGUgc2FtZSBydW4gbG9vcC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEZpeCBh
c3NlcnRpb24gZmFpbHVyZXMgaW4gdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdp
bmVXYXNVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWRlbzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisKIDIw
MjEtMDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
UF0gVGVzdCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hl
biBtZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhm
MmU4Y2JmOTcyOGMwZDJkNDZhODgzZDRkNmY1NDkuLjg3ZmFlZTk1OTMyMWFiOTQ1M2YwMTczZWQ0
ZGRhNmVjZTRhNTA4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDMtMTAgIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEFz
c2VydGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuICJHUFUgUHJvY2VzczogTWVkaWEiIGlzIGVuYWJsZWQsIGBNZWRpYVBsYXllcmAg
d2lsbCBjYWxsIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAKKyAgICAgICAgdGhyZWUgdGlt
ZXMgd2hlbiBhIG1lZGlhIGVsZW1lbnQgdHJpZXMgdG8gbG9hZCBhIFVSTC4gVGhlIHRocmVlIGNh
bGxzIGhhcHBlbiBhdCB0aGUKKyAgICAgICAgZm9sbG93aW5nIHRpbWUgcG9pbnRzOgorICAgICAg
ICAxKSBgTWVkaWFQbGF5ZXJgIGNyZWF0ZXMgYSBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYC4K
KyAgICAgICAgMikgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZWAgcmVjZWl2ZXMgdGhlIHJlc3Bv
bnNlIG9mIGEgImNyZWF0ZU1lZGlhUGxheWVyIiBtZXNzYWdlCisgICAgICAgIGZyb20gdGhlIEdQ
VSBwcm9jZXNzIGFuZCBnZXRzIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSAicmVt
b3RlIiBtZWRpYSBwbGF5ZXIuCisgICAgICAgIDMpIFRoZSBgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eWAgY3JlYXRlcyBhIGBNZWRpYVBsYXllclByaXZhdGVgIGluIHRoZSBHUFUgcHJvY2VzcyBhbmQK
KyAgICAgICAgbm90aWZ5IHRoZSBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYCBpbiB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLgorCisgICAgICAgIFRoZSBzZWNvbmQgY2FsbCBvZiBgbWVkaWFQbGF5
ZXJFbmdpbmVVcGRhdGVkKClgIGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHBsYXllcidzCisg
ICAgICAgIGNvbmZpZ3VyYXRpb24gYXQgdGhhdCB0aW1lIGlzIHNpbWlsYXIgdG8gYE51bGxNZWRp
YVBsYXllclByaXZhdGVgLiBUaGlzIHBhdGNoIHJlbW92ZXMgaXQuCisKKyAgICAgICAgRm9yIHRo
ZSB0aGlyZCBjYWxsIG9mIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAsIHdlIGhhdmUgdG8g
bWFrZSBzdXJlIHRoYXQKKyAgICAgICAgdGhlIGBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVgIGhh
cyByZWNlaXZlZCB0aGUgY29uZmlndXJhdGlvbiB1cGRhdGUgZnJvbSB0aGUgR1BVCisgICAgICAg
IHByb2Nlc3MgYmVmb3JlIHRoZSBjYWxsLiBUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0
aGUgbWVzc2FnZQorICAgICAgICBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpFbmdpbmVVcGRh
dGVkYCwgYW5kIGxldCBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYAorICAgICAgICBkZWNpZGUg
d2hlbiB0byBjYWxsIGBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKWAuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxh
eWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgVGhlIGBwbGF5ZXJDb25maWd1cmF0aW9u
YCBpcyBtZWFuaW5nbGVzcyBpbiB0aGlzIHN0ZXAgc28gd2UgY2FuIHJlbW92ZSBpdC4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBk
YXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lVXBkYXRl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisKIDIwMjEt
MDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0g
VGVzdCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hlbiBt
ZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBiN2Q5NmViYjMyMjJiNjBmZmE0OTMxYWRhYzU3MTlhMWRkNjNh
NTcxLi4zMmQ3ZDZmNmQwNzZjZGVjYzFkOGViYTE2OTMzMDAxYzkxZTdmYWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTUwMDEsNiArNTAwMSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxs
YmFjaygpOworICAgIG1fY2FjaGVkU3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyA9IG1fcGxh
eWVyICYmIG1fcGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7CiAgICAgdXBk
YXRlUmVuZGVyZXIoKTsKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE4ZDY5MWUxZjYyOTEy
YmY4ZDcwZjJkY2YyZjRiZWI2NmMyZDhlODcuLjI5MjE3OTA3ZjEyYTM4YWViNTdhNjdkYjg1ZmI3
YTMxOTY5NjdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0x
NDYsNiArMTQ2LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxFbGVtZW50Ojp3ZWFrUHRyRmFj
dG9yeTsKIAogICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gcGxheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF5ZXI7IH0KKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllciAmJiBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmc7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
QEAgLTEwMTcsNiArMTAxOCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFJlZlB0cjxNZWRp
YVBsYXllcj4gbV9wbGF5ZXI7CisgICAgYm9vbCBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcgeyBmYWxzZSB9OwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2Fk
IHsgUHJlbG9hZDo6QXV0byB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcAppbmRleCA0YTZiZTMxNzMxNGQwYzQyNDFiYzg5YzFiNGU2NzgzOTM4YTMxMDYyLi5jNmQw
NDQxNjZjY2ZkNWJjN2M4ZjE5ZTBhYWJjMjFjNTgwMzgyMWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIFJlbmRlclZp
ZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZgogCiAgICAgaWYgKGRpc3BsYXlpbmdQb3N0ZXIpCiAgICAgICAgIHBhaW50SW50
b1JlY3QocGFpbnRJbmZvLCByZWN0KTsKLSAgICBlbHNlIGlmICghdmlkZW9FbGVtZW50KCkuaXNG
dWxsc2NyZWVuKCkgfHwgIW1lZGlhUGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkpIHsKKyAgICBlbHNlIGlmICghdmlkZW9FbGVtZW50KCkuaXNGdWxsc2NyZWVuKCkgfHwgIXZp
ZGVvRWxlbWVudCgpLnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSkgewogICAgICAgICBp
ZiAocGFpbnRJbmZvLnBhaW50QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6RmxhdHRl
bkNvbXBvc2l0aW5nTGF5ZXJzKSkKICAgICAgICAgICAgIGNvbnRleHQucGFpbnRGcmFtZUZvck1l
ZGlhKCptZWRpYVBsYXllciwgcmVjdCk7CiAgICAgICAgIGVsc2UKQEAgLTI5NCw5ICsyOTQsNyBA
QCBMYXlvdXRVbml0IFJlbmRlclZpZGVvOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdAog
CiBib29sIFJlbmRlclZpZGVvOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQoKS5wbGF5ZXIoKSkKLSAgICAg
ICAgcmV0dXJuIHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOwotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gdmlkZW9FbGVtZW50KCkuc3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpOwogfQogCiB2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVyYXRlZFJlbmRlcmlu
Z1N0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCBhOGQx
ZWY1MWFkN2Y4NGZmZmNhNDYxYzcyZjMyMDI2ZWIxY2UyZWIwLi5iZGQ3YzJhZDM1OTk1YzIxZmEx
MmVhZDU2MmI5ODNjY2NmZGRmZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAK
QEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6On5SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRl
bnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBwcm94eUNvbmZp
Z3VyYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgcHJveHlDb25maWd1
cmF0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk7CkBAIC02NSwxMyArNjUsOCBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbgogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm94aWVzTG9jayk7
CiAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwogCi0gICAgUmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0KICAgICBh
dXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRl
bnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2lu
ZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1cmF0aW9uKSk7Ci0gICAgcHJveHktPmdl
dENvbmZpZ3VyYXRpb24ocGxheWVyQ29uZmlndXJhdGlvbik7CiAgICAgbV9wcm94aWVzLmFkZChp
ZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihwbGF5
ZXJDb25maWd1cmF0aW9uKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6ZGVsZXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDMyMzA5ZDA3NmQ0OTk1ODY5Nzg0Y2U0MmYz
ZTg2MWNlOWNkMjNhMmMuLmQwN2Y5ZTI3ZTc1NTgxMzJiNTBhY2Y3ZjFlNWRhMGIwMjI1YTZmZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKT4mJik7CisgICAgdm9pZCBjcmVh
dGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCBkZWxldGVNZWRpYVBsYXllcihXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVkaWEgcGxheWVyIGZhY3RvcnkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjOTE3
NWVhNWM0ZGM1YWE5Njk1ZThiMjk5ZmE2NmUyZTRhMWVmNjFkLi5kYjQ2Njg1NTNmMjE0OTYzMjZl
NjBjYzIyYzU2NWU5Njk2ZWE4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKLSAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24p
IC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVy
Q29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94
eUNvbmZpZ3VyYXRpb24pCiAgICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBHZXRTdXBwb3J0ZWRUeXBlcyhlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25v
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAppbmRleCAwYWUyNjQ3MjUyNzBkMDBjZGRjZjk1NTljZjdiOTc0
ZjI2MTIzNjY0Li4xODZlZGE0MTBhY2M1M2YxYTFiZDk2MDRmNGRkYWYyZjhkNWIzNzA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCkBAIC02MzAsMTEgKzYzMCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaXplQ2hhbmdlZCgpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpTaXplQ2hhbmdl
ZChtX3BsYXllci0+bmF0dXJhbFNpemUoKSksIG1faWQpOwogfQogCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCi17Ci0gICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpF
bmdpbmVVcGRhdGVkKCksIG1faWQpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKQogewogICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA3
ZjliMDQ4ZjNlY2E1ZmRmOGNiY2Q1NzIyNTdkMWE5ZGRhZWM3MGM1Li45ZTQ2MGYxMDU1ODlkYTJj
MWU3NDk4NTNkY2Y1MTEzZjVlOWE4YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTIxNCw3ICsyMTQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgp
IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgpIGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIG1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRp
YVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4IDBhZjdkOWVlMmFkMDU0NWIwMDE0ODg4YjJiM2Nl
MTU4YzUxZDgwNGEuLmI1MjM4ZTdhY2VkOTVmMDA4NTY4Y2ViM2IwNTgzOTRlZjc4NzAyYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtNTQsNyArNTQsOCBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdN
b2RlKHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAg
ICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwotICAgIG1fcGxh
eWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CisgICAgaWYgKHByZXBhcmVGb3JSZW5kZXJpbmcp
CisgICAgICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAgICAgbV92aWRlb0Nv
bnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIGlmICghbV9pbmxpbmVMYXllckhv
c3RpbmdDb250ZXh0KQogICAgICAgICBtX2lubGluZUxheWVySG9zdGluZ0NvbnRleHQgPSBMYXll
ckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOTdmN2FkYTNjYTEyOWUzOGEzNTVhZjkzMzYx
NzU2ZmNlMGViY2M3NS4uZGQxNWUzYTUxNDAzNDY1YzQwZWU3YzUxMjhhNjYzNTU4ZTBkNzkwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTExLDYgKzExMSw3IEBAIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVy
KiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5ZXJJ
ZGVudGlmaWVyKQorICAgICwgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luKHBsYXllci0+ZG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpKQogewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQpA
QCAtMTMwLDEzICsxMzEsNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3VtZW50U2VjdXJp
dHlPcmlnaW4pCi17Ci0gICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9u
KTsKLSAgICBtX2RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBXVEZNb3ZlKGRvY3VtZW50U2VjdXJp
dHlPcmlnaW4pOwotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNo
LCBib29sIHByZXBhcmUpCiB7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250
ZW50c1NjYWxlKCk7CkBAIC0xODEsOSArMTc1LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
CiAgICAgICAgIHNhbmRib3hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAg
fQogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6TG9hZCh1cmwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGNvbnRl
bnRUeXBlLCBrZXlTeXN0ZW0pLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGF1dG8m
JiBjb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdl
YWtUaGlzLT5tX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OkxvYWQodXJsLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSwga2V5
U3lzdGVtKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiYgY29u
ZmlndXJhdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7Cisg
ICAgICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKICAgICB9LCBtX2lkKTsKIH0K
IApAQCAtNjYxLDkgKzY1OCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogewogICAgIGlm
IChtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIgPT0gTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0UpIHsKICAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgICAgICBjb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpMb2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBpZGVudGlmaWVyKSwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShhdXRvJiYgY29uZmlndXJhdGlvbikgewot
ICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nv
bmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgICAgICBjb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpM
b2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBpZGVudGlmaWVyKSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiYgY29uZmlndXJhdGlvbikgewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CisgICAg
ICAgICAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiAgICAgICAgIH0sIG1faWQp
OwogICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZSA9IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBt
X21hbmFnZXIudHlwZUNhY2hlKG1fcmVtb3RlRW5naW5lSWRlbnRpZmllciksICp0aGlzLCBjbGll
bnQpOwogCkBAIC0xMjIxLDExICsxMjIxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlc291cmNlTm90U3VwcG9ydGVkKCkKICAgICBtX3BsYXllci0+cmVzb3VyY2VOb3RTdXBw
b3J0ZWQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmVuZ2luZVVwZGF0
ZWQoKQotewotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKLX0KLQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKIHsK
ICAgICBtX3BsYXllci0+YWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCmluZGV4IGM5OTUyMTk3NWExZDc2M2QxMDk1NTFkODQ3ZmE2ZDQ4YWJkNGM5
YmYuLjkyNGFmZmE0NmU3NTQ2OGRiYjc4ODJlNmQxOGE1MzZiMjM2YWY3NjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaApAQCAtODIsOCArODIsNiBAQCBwdWJsaWM6CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUoKTsKIAotICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mJiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOwotCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0gdHJ1ZTsgfQpAQCAt
MTQ0LDggKzE0Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRIMlBpbmcoY29uc3QgVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXVEY6OlNlY29uZHMsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+JiYpPiYmKTsKICAgICB2b2lkIHJlc291cmNlTm90U3VwcG9ydGVkKCk7CiAK
LSAgICB2b2lkIGVuZ2luZVVwZGF0ZWQoKTsKLQogICAgIHZvaWQgYWN0aXZlU291cmNlQnVmZmVy
c0NoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4IDUwNjRlOWQxNTgxM2RiMzZhNjA3
MmNjMWM1MmUxNDkzN2ZhNzcwMDIuLjY5OTM0MDdiNzRjZTc3ZDYyMDQzN2VkYWM3ZjUwYjRlMGYy
MGNiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBA
IC03MSw4ICs3MSw2IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RS
ZWZDb3VudGVkIHsKICAgICBTZW5kSDJQaW5nKFVSTCB1cmwpIC0+IChFeHBlY3RlZDxTZWNvbmRz
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb3VyY2VOb3RT
dXBwb3J0ZWQoKQogCi0gICAgRW5naW5lVXBkYXRlZCgpCi0KICAgICBBY3RpdmVTb3VyY2VCdWZm
ZXJzQ2hhbmdlZCgpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwCmluZGV4IDFlNzdkYzhkMDE3NWZkMmY0Nzc1M2E4NGE1YTU0OWM4ZjZm
MjdmNmIuLjY0OTczODRkMTRjZDAzYjQxZDYwOGNjMDlkNDkxMmE0OWU0NmI5OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE2NSwxNiArMTY1LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVSZW0KICAgICBwcm94eUNvbmZpZ3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdp
biA9IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAKICAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRp
YVBsYXllcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyLCBkb2N1
bWVudFNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZShkb2N1bWVudFNlY3VyaXR5T3JpZ2luKV0oYXV0
byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlz
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIg
PSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIpKQotICAgICAgICAgICAgcGxheWVyLT5zZXRDb25m
aWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29uZmlndXJhdGlvbiksIFdURk1vdmUoZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbikpOwotICAgIH07Ci0KLSAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBwcm94eUNvbmZpZ3VyYXRpb24pLCBjb21wbGV0aW9uSGFuZGxlciwgMCk7Cisg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIs
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCiAgICAg
YXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX3Bs
YXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA0NjI1YjczOWJiMzJmMzEwMmQ4ZjBhODNhMmQ3YWYxMzNmYTJiMTY1Li45YmUwMDQzNjY0MjRj
YWMwZWE4NTdiMmViMTc3ZDU2NDE1MzhiZTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEt
MDMtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdIEFzc2VydGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTAz
LTA5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFRl
c3QgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgdGltZXMgb3V0IHdoZW4gbWVk
aWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkYmMxMjM2ZDliNTEyNGQwYTE3MDJmOWIwNTU4MzA2NjExZGJi
OTAzLi5hNDA5MGE0MDlkODcwN2U5MmQxOGQzNmM3MTQ1N2FiY2Q2MGRjYTRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjU1LDExICsyNTUsNiBAQCB3
ZWJraXQub3JnL2IvMjIxODE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtbQogCiB3ZWJraXQub3JnL2IvMjIxNzgzIFsgRGVidWcgXSBs
b2FkZXIvY2hhbmdlLXNyYy1kdXJpbmctaWZyYW1lLWxvYWQtY3Jhc2guaHRtbCBbIFNraXAgXQog
Ci0jIHdlYmtpdC5vcmcvYi8yMjAzNzUKLVsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
ZXZlbnRfbG9hZGVkbWV0YWRhdGEuaHRtbCBbIENyYXNoIFBhc3MgXQotWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCi1bIERl
YnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZGRhdGEu
aHRtbCBbIENyYXNoIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvMjIyNTY5IGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWEtc3RyZWFtLXRyYWNrLWludGVycnVwdGVkLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAog
IyMjIEVORCBPRiAoMSkgQ2xhc3NpZmllZCBmYWlsdXJlcyB3aXRoIGJ1ZyByZXBvcnRzCg==
</data>
<flag name="review"
          id="442091"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422885</attachid>
            <date>2021-03-10 16:04:05 -0800</date>
            <delta_ts>2021-03-10 18:40:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220375-20210310160404.patch</filename>
            <type>text/plain</type>
            <size>23945</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRjNTcyN2M5ZDQyYTFh
ZWQ0NGUxMjk0NTNjNDU5YzNlNmJlNDg3Zi4uOWJjY2JlNTcwZDhiNTlmMDQwMDBkODk2MzllNDkx
ZjQyMDIyMWQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTAzLTEwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBBc3Nl
cnRpb24gdW5kZXIgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwMzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IGBNZWRpYVBsYXllcmAgY2FsbHMgYEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBk
YXRlZCgpYCB3aGVuIGEgbWVkaWEgZWxlbWVudAorICAgICAgICBsb2FkcyBhIG5ldyBVUkwgYW5k
IGBNZWRpYVBsYXllcjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpYCBtYXkgY2hhbmdl
IGZyb20KKyAgICAgICAgZmFsc2UgdG8gdHJ1ZSBhdCB0aGUgc2FtZSB0aW1lLiBIb3dldmVyLCBg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKClgCisgICAgICAgIGRvZXMg
bm90IG5vdGlmeSB0aGUgcmVuZGVyZXIgYWJvdXQgdGhlIGNoYW5nZSBpbiB0aGUgc2FtZSBydW4g
bG9vcC4gSW5zdGVhZCwgaXQKKyAgICAgICAgc2NoZWR1bGVzIGEgdGFzayB0byBkbyB0aGF0LiBU
aGlzIGxlYWRzIHRvIGEgcmFjZSBjb25kaXRpb24gdGhhdAorICAgICAgICBgUmVuZGVyTGF5ZXJC
YWNraW5nOjpjb250ZW50Q2hhbmdlZChWaWRlb0NoYW5nZWQpYCBnZXRzIGNhbGxlZCBhZnRlciB0
aGUgY29tcG9zaXRpbmcKKyAgICAgICAgdXBkYXRlIHdoZXJlIGBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmNhbkFjY2VsZXJhdGVWaWRlb1JlbmRlcmluZygpYCByZXR1cm5zIHRydWUuCisgICAgICAg
IFRoaXMgaGFwcGVucyBiZWNhdXNlIHJlbmRlcmVyIGNoZWNrcyBgTWVkaWFQbGF5ZXI6OnN1cHBv
cnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKWAKKyAgICAgICAgaW4gYFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKClgLCB3aGljaCBjaGFuZ2VzIGl0cyB2
YWx1ZQorICAgICAgICB3aGVuIGBNZWRpYVBsYXllcmAgY2FsbHMgYEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhRW5naW5lV2FzVXBkYXRlZCgpYC4KKworICAgICAgICBUbyBmaXggdGhpcyByYWNlIGNv
bmRpdGlvbiwgYEhUTUxNZWRpYUVsZW1lbnRgIG5lZWRzIHRvIG5vdGlmeSBgUmVuZGVyVmlkZW9g
IGFuZAorICAgICAgICBjaGFuZ2VzIHRoZSBgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZ2Ag
cHJvcGVydHkgc2VlbiBmcm9tIHJlbmRlcmVyJ3MgcGVyc3BlY3RpdmUKKyAgICAgICAgaW4gdGhl
IHNhbWUgcnVuIGxvb3AuIFdpdGggdGhpcyBwYXRjaCwgYEhUTUxNZWRpYUVsZW1lbnRgIGtlZXBz
IGEgY2FjaGVkIHZhbHVlIG9mCisgICAgICAgIGBNZWRpYVBsYXllcjo6c3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpYCwgYW5kIG9ubHkgdXBkYXRlcyBpdHMgdmFsdWUgd2hlbgorICAgICAg
ICBgSFRNTE1lZGlhRWxlbWVudGAgbm90aWZpZXMgdGhlIHJlbmRlcmVyLiBJbiBhZGRpdGlvbiwg
YFJlbmRlclZpZGVvYCBjaGVja3MKKyAgICAgICAgYEhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmcoKWAgaW5zdGVhZCBvZgorICAgICAgICBgTWVkaWFQbGF5ZXI6
OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKWAsIHNvIHRoYXQgdGhlIHJlbmRlcmVyIHdp
bGwKKyAgICAgICAgc2VlIHRoZSBuZXcgdmFsdWUgb2YgYHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmdgIGFuZCByZWNlaXZlIHRoZSBjb250ZW50CisgICAgICAgIGNoYW5nZSBub3RpZmljYXRp
b24gaW4gdGhlIHNhbWUgcnVuIGxvb3AuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBGaXggYXNz
ZXJ0aW9uIGZhaWx1cmVzIGluIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5l
V2FzVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1l
ZGlhUGxheWVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWRlbzo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJWaWRlbzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisKIDIwMjEt
MDMtMDkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0g
VGVzdCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQuaHRtbCB0aW1lcyBvdXQgd2hlbiBt
ZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhmMmU4
Y2JmOTcyOGMwZDJkNDZhODgzZDRkNmY1NDkuLjRiMTc5ZTIwOGVjZmJmZTI0OGI2ODA1YzlhYjc3
ZDliNDRlOGNmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDMtMTAgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEFzc2Vy
dGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVp
cmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
V2hlbiAiR1BVIFByb2Nlc3M6IE1lZGlhIiBpcyBlbmFibGVkLCBgTWVkaWFQbGF5ZXJgIHdpbGwg
Y2FsbCBgbWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKClgCisgICAgICAgIHRocmVlIHRpbWVzIHdo
ZW4gYSBtZWRpYSBlbGVtZW50IHRyaWVzIHRvIGxvYWQgYSBVUkwuIFRoZSB0aHJlZSBjYWxscyBo
YXBwZW4gYXQgdGhlCisgICAgICAgIGZvbGxvd2luZyB0aW1lIHBvaW50czoKKyAgICAgICAgMSkg
YE1lZGlhUGxheWVyYCBjcmVhdGVzIGEgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZWAuCisgICAg
ICAgIDIpIGBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVgIHJlY2VpdmVzIHRoZSByZXNwb25zZSBv
ZiBhICJjcmVhdGVNZWRpYVBsYXllciIgbWVzc2FnZQorICAgICAgICBmcm9tIHRoZSBHUFUgcHJv
Y2VzcyBhbmQgZ2V0cyB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9ucyBvZiB0aGUgInJlbW90ZSIg
bWVkaWEgcGxheWVyLgorICAgICAgICAzKSBUaGUgYFJlbW90ZU1lZGlhUGxheWVyUHJveHlgIGNy
ZWF0ZXMgYSBgTWVkaWFQbGF5ZXJQcml2YXRlYCBpbiB0aGUgR1BVIHByb2Nlc3MgYW5kCisgICAg
ICAgIG5vdGlmeSB0aGUgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZWAgaW4gdGhlIFdlYkNvbnRl
bnQgcHJvY2Vzcy4KKworICAgICAgICBUaGUgc2Vjb25kIGNhbGwgb2YgYG1lZGlhUGxheWVyRW5n
aW5lVXBkYXRlZCgpYCBpcyB1bm5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBwbGF5ZXIncworICAgICAg
ICBjb25maWd1cmF0aW9uIGF0IHRoYXQgdGltZSBpcyBzaW1pbGFyIHRvIGBOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlYC4gVGhpcyBwYXRjaCByZW1vdmVzIGl0LgorCisgICAgICAgIEZvciB0aGUgdGhp
cmQgY2FsbCBvZiBgbWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKClgLCB3ZSBoYXZlIHRvIG1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIHRoZSBgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlYCBoYXMgcmVj
ZWl2ZWQgdGhlIGNvbmZpZ3VyYXRpb24gdXBkYXRlIGZyb20gdGhlIEdQVQorICAgICAgICBwcm9j
ZXNzIGJlZm9yZSB0aGUgY2FsbC4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIHJlbW92ZXMgdGhlIG1l
c3NhZ2UKKyAgICAgICAgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6RW5naW5lVXBkYXRlZGAs
IGFuZCBsZXQgYE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZWAKKyAgICAgICAgZGVjaWRlIHdoZW4g
dG8gY2FsbCBgbWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKClgLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIFRoZSBgcGxheWVyQ29uZmlndXJhdGlvbmAgaXMg
bWVhbmluZ2xlc3MgaW4gdGhpcyBzdGVwIHNvIHdlIGNhbiByZW1vdmUgaXQuCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQp
OiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpwcmVwYXJlRm9yUGxheWJhY2spOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZpZ3VyYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmVuZ2luZVVwZGF0ZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorCiAyMDIxLTAzLTA5
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFRlc3Qg
ZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgdGltZXMgb3V0IHdoZW4gbWVkaWEg
aW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYjdkOTZlYmIzMjIyYjYwZmZhNDkzMWFkYWM1NzE5YTFkZDYzYTU3MS4u
YjMzY2M3YTk5YTdmZDU3OTY3ZmM1NzY0Yzk2ZWM0ZjRmZjUzZTNmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01MDAxLDYgKzUwMDEsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKIAogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2so
KTsKKyAgICBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcgPSBtX3BsYXllciAm
JiBtX3BsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOwogICAgIHVwZGF0ZVJl
bmRlcmVyKCk7CiAgICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIApAQCAt
NTUxMSw2ICs1NTEyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVy
KCkKICAgICBpZiAobV9wbGF5ZXIpIHsKICAgICAgICAgbV9wbGF5ZXItPmludmFsaWRhdGUoKTsK
ICAgICAgICAgbV9wbGF5ZXIgPSBudWxscHRyOworICAgICAgICBtX2NhY2hlZFN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKICAgICB9CiAgICAgc2NoZWR1bGVQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDE4ZDY5MWUxZjYyOTEyYmY4ZDcwZjJkY2YyZjRiZWI2NmMyZDhlODcuLmZmYzhl
YTllZDZlN2YzN2M1YjdiNjMwNmM0NTI3MDJiYWZjNDU0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xNDYsNiArMTQ2LDcgQEAgcHVibGljOgogICAgIHVzaW5n
IEhUTUxFbGVtZW50Ojp3ZWFrUHRyRmFjdG9yeTsKIAogICAgIFJlZlB0cjxNZWRpYVBsYXllcj4g
cGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0KKyAgICBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmc7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KQEAgLTEwMTcsNiArMTAxOCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAg
IFJlZlB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgYm9vbCBtX2NhY2hlZFN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmcgeyBmYWxzZSB9OwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxv
YWQgbV9wcmVsb2FkIHsgUHJlbG9hZDo6QXV0byB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZGVvLmNwcAppbmRleCA0YTZiZTMxNzMxNGQwYzQyNDFiYzg5YzFiNGU2NzgzOTM4
YTMxMDYyLi5jNmQwNDQxNjZjY2ZkNWJjN2M4ZjE5ZTBhYWJjMjFjNTgwMzgyMWY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCB2
b2lkIFJlbmRlclZpZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZgogCiAgICAgaWYgKGRpc3BsYXlpbmdQb3N0ZXIpCiAgICAg
ICAgIHBhaW50SW50b1JlY3QocGFpbnRJbmZvLCByZWN0KTsKLSAgICBlbHNlIGlmICghdmlkZW9F
bGVtZW50KCkuaXNGdWxsc2NyZWVuKCkgfHwgIW1lZGlhUGxheWVyLT5zdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkpIHsKKyAgICBlbHNlIGlmICghdmlkZW9FbGVtZW50KCkuaXNGdWxsc2Ny
ZWVuKCkgfHwgIXZpZGVvRWxlbWVudCgpLnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSkg
ewogICAgICAgICBpZiAocGFpbnRJbmZvLnBhaW50QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhh
dmlvcjo6RmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKSkKICAgICAgICAgICAgIGNvbnRleHQucGFp
bnRGcmFtZUZvck1lZGlhKCptZWRpYVBsYXllciwgcmVjdCk7CiAgICAgICAgIGVsc2UKQEAgLTI5
NCw5ICsyOTQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclZpZGVvOjptaW5pbXVtUmVwbGFjZWRIZWln
aHQoKSBjb25zdAogCiBib29sIFJlbmRlclZpZGVvOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVy
aW5nKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQoKS5wbGF5
ZXIoKSkKLSAgICAgICAgcmV0dXJuIHBsYXllci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdmlkZW9FbGVtZW50KCkuc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOwogfQogCiB2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAppbmRleCBhOGQxZWY1MWFkN2Y4NGZmZmNhNDYxYzcyZjMyMDI2ZWIxY2UyZWIwLi5iZGQ3YzJh
ZDM1OTk1YzIxZmExMmVhZDU2MmI5ODNjY2NmZGRmZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6On5SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgZW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
JiBwcm94eUNvbmZpZ3VyYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklkZW50
aWZpZXIgaWRlbnRpZmllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
IGVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYg
cHJveHlDb25maWd1cmF0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgQVNTRVJUKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk7CkBAIC02NSwxMyArNjUsOCBA
QCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihN
ZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbgogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9w
cm94aWVzTG9jayk7CiAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWRlbnRpZmllcikp
OwogCi0gICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRp
b247Ci0KICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5
PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0
aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1cmF0aW9uKSk7Ci0g
ICAgcHJveHktPmdldENvbmZpZ3VyYXRpb24ocGxheWVyQ29uZmlndXJhdGlvbik7CiAgICAgbV9w
cm94aWVzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7Ci0KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihwbGF5ZXJDb25maWd1cmF0aW9uKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6ZGVsZXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDMyMzA5ZDA3NmQ0OTk1
ODY5Nzg0Y2U0MmYzZTg2MWNlOWNkMjNhMmMuLmQwN2Y5ZTI3ZTc1NTgxMzJiNTBhY2Y3ZjFlNWRh
MGIwMjI1YTZmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC03Miw3ICs3Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKT4mJik7Cisg
ICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCBkZWxldGVNZWRpYVBs
YXllcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVkaWEgcGxh
eWVyIGZhY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBjOTE3NWVhNWM0ZGM1YWE5Njk1ZThiMjk5ZmE2NmUyZTRhMWVmNjFkLi5kYjQ2Njg1
NTNmMjE0OTYzMjZlNjBjYzIyYzU2NWU5Njk2ZWE4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94eUNv
bmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBDcmVhdGVNZWRpYVBsYXllcihX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBHZXRTdXBwb3J0ZWRU
eXBlcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBl
cykgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCAwYWUyNjQ3MjUyNzBkMDBjZGRj
Zjk1NTljZjdiOTc0ZjI2MTIzNjY0Li4xODZlZGE0MTBhY2M1M2YxYTFiZDk2MDRmNGRkYWYyZjhk
NWIzNzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC02MzAsMTEgKzYzMCw2IEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaXplQ2hhbmdlZCgpCiAgICAgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpTaXplQ2hhbmdlZChtX3BsYXllci0+bmF0dXJhbFNpemUoKSksIG1faWQpOwogfQogCi12b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCi17Ci0g
ICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpFbmdpbmVVcGRhdGVkKCksIG1faWQpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKQogewog
ICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaAppbmRleCA3ZjliMDQ4ZjNlY2E1ZmRmOGNiY2Q1NzIyNTdkMWE5ZGRhZWM3MGM1Li45ZTQ2
MGYxMDU1ODlkYTJjMWU3NDk4NTNkY2Y1MTEzZjVlOWE4YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAg
LTIxNCw3ICsyMTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0
YXRlQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBv
cnRlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBj
b25zdCBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwog
ICAgIHZvaWQgbWVkaWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpIGZpbmFsOwog
ICAgIHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAg
ICAgdm9pZCBtZWRpYVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29j
b2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4IDBhZjdkOWVlMmFkMDU0NWIw
MDE0ODg4YjJiM2NlMTU4YzUxZDgwNGEuLmI1MjM4ZTdhY2VkOTVmMDA4NTY4Y2ViM2IwNTgzOTRl
Zjc4NzAyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtNTQs
NyArNTQsOCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogICAgIG1fcGxheWVyLT5zZXRQcml2
YXRlQnJvd3NpbmdNb2RlKHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChw
cmVsb2FkKTsKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gp
OwotICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CisgICAgaWYgKHByZXBhcmVG
b3JSZW5kZXJpbmcpCisgICAgICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAg
ICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIGlmICghbV9p
bmxpbmVMYXllckhvc3RpbmdDb250ZXh0KQogICAgICAgICBtX2lubGluZUxheWVySG9zdGluZ0Nv
bnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9j
ZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOTdmN2FkYTNjYTEyOWUz
OGEzNTVhZjkzMzYxNzU2ZmNlMGViY2M3NS4uZGQxNWUzYTUxNDAzNDY1YzQwZWU3YzUxMjhhNjYz
NTU4ZTBkNzkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTExLDYgKzEx
MSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
ICAgICAsIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwg
bV9pZChwbGF5ZXJJZGVudGlmaWVyKQorICAgICwgbV9kb2N1bWVudFNlY3VyaXR5T3JpZ2luKHBs
YXllci0+ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpKQogewogICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIpOwogfQpAQCAtMTMwLDEzICsxMzEsNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRv
Y3VtZW50U2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShj
b25maWd1cmF0aW9uKTsKLSAgICBtX2RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBXVEZNb3ZlKGRv
Y3VtZW50U2VjdXJpdHlPcmlnaW4pOwotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQo
KTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHBy
ZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmUpCiB7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVy
LT5wbGF5ZXJDb250ZW50c1NjYWxlKCk7CkBAIC0xODEsOSArMTc1LDEyIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5CiAgICAgICAgIHNhbmRib3hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhh
bmRsZSk7CiAgICAgfQogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6TG9hZCh1cmwsIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyldKGF1dG8mJiBjb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pOworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OkxvYWQodXJsLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBjb250
ZW50VHlwZSwga2V5U3lzdGVtKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlz
XShhdXRvJiYgY29uZmlndXJhdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmln
dXJhdGlvbik7CisgICAgICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKICAgICB9
LCBtX2lkKTsKIH0KIApAQCAtNjYxLDkgKzY1OCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRU
eQogewogICAgIGlmIChtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIgPT0gTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0UpIHsKICAgICAgICAgYXV0
byBpZGVudGlmaWVyID0gUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwot
ICAgICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpMb2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBp
ZGVudGlmaWVyKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShhdXRvJiYgY29uZmln
dXJhdGlvbikgewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdl
YWtUaGlzLT5tX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOworICAgICAg
ICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpMb2FkTWVkaWFTb3VyY2UodXJsLCBjb250ZW50VHlwZSwgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNUGFyc2VyRW5hYmxlZCgpLCBpZGVudGlm
aWVyKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiYgY29uZmln
dXJhdGlvbikgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJh
dGlvbik7CisgICAgICAgICAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiAgICAg
ICAgIH0sIG1faWQpOwogICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZSA9IE1lZGlhU291cmNl
UHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBp
ZGVudGlmaWVyLCBtX21hbmFnZXIudHlwZUNhY2hlKG1fcmVtb3RlRW5naW5lSWRlbnRpZmllciks
ICp0aGlzLCBjbGllbnQpOwogCkBAIC0xMjIxLDExICsxMjIxLDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnJlc291cmNlTm90U3VwcG9ydGVkKCkKICAgICBtX3BsYXllci0+cmVz
b3VyY2VOb3RTdXBwb3J0ZWQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmVuZ2luZVVwZGF0ZWQoKQotewotICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsK
LX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnND
aGFuZ2VkKCkKIHsKICAgICBtX3BsYXllci0+YWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGM5OTUyMTk3NWExZDc2M2QxMDk1NTFkODQ3
ZmE2ZDQ4YWJkNGM5YmYuLjkyNGFmZmE0NmU3NTQ2OGRiYjc4ODJlNmQxOGE1MzZiMjM2YWY3NjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtODIsOCArODIsNiBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAotICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYpOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0g
dHJ1ZTsgfQpAQCAtMTQ0LDggKzE0Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRIMlBpbmco
Y29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXVEY6OlNlY29uZHMs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYpPiYmKTsKICAgICB2b2lkIHJlc291cmNlTm90U3Vw
cG9ydGVkKCk7CiAKLSAgICB2b2lkIGVuZ2luZVVwZGF0ZWQoKTsKLQogICAgIHZvaWQgYWN0aXZl
U291cmNlQnVmZmVyc0NoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4IDUwNjRlOWQx
NTgxM2RiMzZhNjA3MmNjMWM1MmUxNDkzN2ZhNzcwMDIuLjY5OTM0MDdiNzRjZTc3ZDYyMDQzN2Vk
YWM3ZjUwYjRlMGYyMGNiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluCkBAIC03MSw4ICs3MSw2IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICAgICBTZW5kSDJQaW5nKFVSTCB1cmwpIC0+IChFeHBl
Y3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
UmVzb3VyY2VOb3RTdXBwb3J0ZWQoKQogCi0gICAgRW5naW5lVXBkYXRlZCgpCi0KICAgICBBY3Rp
dmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDFlNzdkYzhkMDE3NWZkMmY0Nzc1M2E4
NGE1YTU0OWM4ZjZmMjdmNmIuLjY0OTczODRkMTRjZDAzYjQxZDYwOGNjMDlkNDkxMmE0OWU0NmI5
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE2NSwxNiArMTY1LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBwcm94eUNvbmZpZ3VyYXRpb24uZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAKICAgICBhdXRvIGlkZW50
aWZpZXIgPSBNZWRpYVBsYXllcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVu
dGlmaWVyLCBkb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZShkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKV0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIG11dGFibGUgewotICAgICAgICBp
ZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjb25zdCBh
dXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIpKQotICAgICAgICAgICAgcGxh
eWVyLT5zZXRDb25maWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29uZmlndXJhdGlvbiksIFdURk1v
dmUoZG9jdW1lbnRTZWN1cml0eU9yaWdpbikpOwotICAgIH07Ci0KLSAgICBncHVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCBy
ZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94eUNvbmZpZ3VyYXRpb24pLCBjb21wbGV0aW9uSGFu
ZGxlciwgMCk7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVy
KGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiks
IDApOwogCiAgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlz
KTsKICAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5
ZXIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0NjI1YjczOWJiMzJmMzEwMmQ4ZjBhODNhMmQ3YWYxMzNmYTJiMTY1Li5i
YzlmYWM1NDFiZTY2OGE5YWQ1YzczNjcwZmFjYmQ0ZDI2YmJjM2NmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjEtMDMtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBbR1BVIFByb2Nlc3NdIEFzc2VydGlvbiB1bmRlciBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAyMS0wMy0wOSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IFtHUFVQXSBUZXN0IGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLW1wNC5odG1sIHRpbWVzIG91
dCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGJjMTIzNmQ5YjUxMjRkMGExNzAyZjliMDU1
ODMwNjYxMWRiYjkwMy4uYTQwOTBhNDA5ZDg3MDdlOTJkMThkMzZjNzE0NTdhYmNkNjBkY2E0ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1NSwxMSAr
MjU1LDYgQEAgd2Via2l0Lm9yZy9iLzIyMTgxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW0KIAogd2Via2l0Lm9yZy9iLzIyMTc4MyBb
IERlYnVnIF0gbG9hZGVyL2NoYW5nZS1zcmMtZHVyaW5nLWlmcmFtZS1sb2FkLWNyYXNoLmh0bWwg
WyBTa2lwIF0KIAotIyB3ZWJraXQub3JnL2IvMjIwMzc1Ci1bIERlYnVnIF0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRhLmh0bWwgWyBDcmFzaCBQYXNzIF0KLVsgRGVi
dWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3MuaHRtbCBbIENyYXNoIFBh
c3MgXQotWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19s
b2FkZWRkYXRhLmh0bWwgWyBDcmFzaCBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzIyMjU2OSBmYXN0
L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1sIFsgQ3Jhc2gg
UGFzcyBdCiAKICMjIyBFTkQgT0YgKDEpIENsYXNzaWZpZWQgZmFpbHVyZXMgd2l0aCBidWcgcmVw
b3J0cwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>