<?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>120457</bug_id>
          
          <creation_ts>2013-08-29 01:53:59 -0700</creation_ts>
          <short_desc>[CSS Regions] The layers from the flow thread should be collected under the regions&apos; layers.</short_desc>
          <delta_ts>2013-10-24 12:59:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>121965</dependson>
          <blocked>84900</blocked>
    
    <blocked>123100</blocked>
    
    <blocked>123101</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Maerean">mmaerean</reporter>
          <assigned_to name="Mihai Maerean">mmaerean</assigned_to>
          <cc>achicu</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922366</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-08-29 01:53:59 -0700</bug_when>
    <thetext>Collect regions&apos; layers inside a RenderFlowThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932524</commentid>
    <comment_count>1</comment_count>
      <attachid>212459</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-09-24 06:19:59 -0700</bug_when>
    <thetext>Created attachment 212459
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933204</commentid>
    <comment_count>2</comment_count>
      <attachid>212459</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-25 14:26:51 -0700</bug_when>
    <thetext>Comment on attachment 212459
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933399</commentid>
    <comment_count>3</comment_count>
      <attachid>212459</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 01:19:43 -0700</bug_when>
    <thetext>Comment on attachment 212459
patch

Clearing flags on attachment: 212459

Committed r156451: &lt;http://trac.webkit.org/changeset/156451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933400</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 01:19:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933596</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 11:03:44 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 121965</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933618</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-09-26 11:35:06 -0700</bug_when>
    <thetext>This broke a number of tests, see &lt;http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r156451%20(12916)/results.html&gt; (except for global constructor failures, which are unrelated).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941225</commentid>
    <comment_count>7</comment_count>
      <attachid>214579</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-10-18 09:19:23 -0700</bug_when>
    <thetext>Created attachment 214579
patch that fixes the failing test

This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.

Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it&apos;s
parent renderer, not in the region renderer (RenderNamedFlowFragment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941228</commentid>
    <comment_count>8</comment_count>
      <attachid>214579</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-18 09:25:23 -0700</bug_when>
    <thetext>Comment on attachment 214579
patch that fixes the failing test

Attachment 214579 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/5378049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941232</commentid>
    <comment_count>9</comment_count>
      <attachid>214579</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-18 09:29:03 -0700</bug_when>
    <thetext>Comment on attachment 214579
patch that fixes the failing test

Attachment 214579 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/5378052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941234</commentid>
    <comment_count>10</comment_count>
      <attachid>214579</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-18 09:31:52 -0700</bug_when>
    <thetext>Comment on attachment 214579
patch that fixes the failing test

Attachment 214579 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/5408070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941239</commentid>
    <comment_count>11</comment_count>
      <attachid>214583</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-10-18 09:46:36 -0700</bug_when>
    <thetext>Created attachment 214583
patch that fixes the failing test

This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.

Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it&apos;s
parent renderer, not in the region renderer (RenderNamedFlowFragment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941249</commentid>
    <comment_count>12</comment_count>
      <attachid>214583</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-18 10:03:38 -0700</bug_when>
    <thetext>Comment on attachment 214583
patch that fixes the failing test

Attachment 214583 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/5208016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941250</commentid>
    <comment_count>13</comment_count>
      <attachid>214583</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-18 10:04:18 -0700</bug_when>
    <thetext>Comment on attachment 214583
patch that fixes the failing test

Attachment 214583 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/5238015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941257</commentid>
    <comment_count>14</comment_count>
      <attachid>214583</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-18 10:16:46 -0700</bug_when>
    <thetext>Comment on attachment 214583
patch that fixes the failing test

Attachment 214583 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/5288024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941264</commentid>
    <comment_count>15</comment_count>
      <attachid>214583</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-18 10:35:46 -0700</bug_when>
    <thetext>Comment on attachment 214583
patch that fixes the failing test

Attachment 214583 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5308025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941265</commentid>
    <comment_count>16</comment_count>
      <attachid>214583</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-18 10:36:20 -0700</bug_when>
    <thetext>Comment on attachment 214583
patch that fixes the failing test

Attachment 214583 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/5288029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941655</commentid>
    <comment_count>17</comment_count>
      <attachid>214691</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-10-19 21:54:20 -0700</bug_when>
    <thetext>Created attachment 214691
patch that fixes the failing test

This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.

Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it&apos;s
parent renderer, not in the region renderer (RenderNamedFlowFragment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941658</commentid>
    <comment_count>18</comment_count>
      <attachid>214691</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-19 21:59:45 -0700</bug_when>
    <thetext>Comment on attachment 214691
patch that fixes the failing test

Attachment 214691 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/6148039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941660</commentid>
    <comment_count>19</comment_count>
      <attachid>214691</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-19 22:18:51 -0700</bug_when>
    <thetext>Comment on attachment 214691
patch that fixes the failing test

Attachment 214691 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6608039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941662</commentid>
    <comment_count>20</comment_count>
      <attachid>214691</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-19 22:39:29 -0700</bug_when>
    <thetext>Comment on attachment 214691
patch that fixes the failing test

Attachment 214691 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4548118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941665</commentid>
    <comment_count>21</comment_count>
      <attachid>214691</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-19 23:00:25 -0700</bug_when>
    <thetext>Comment on attachment 214691
patch that fixes the failing test

Attachment 214691 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/6598048</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941671</commentid>
    <comment_count>22</comment_count>
      <attachid>214693</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-10-19 23:47:04 -0700</bug_when>
    <thetext>Created attachment 214693
patch that fixes the failing test. the inline keyword was causing the build to fail.

This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.

Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it&apos;s
parent renderer, not in the region renderer (RenderNamedFlowFragment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941957</commentid>
    <comment_count>23</comment_count>
      <attachid>214693</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-10-21 12:12:40 -0700</bug_when>
    <thetext>Comment on attachment 214693
patch that fixes the failing test. the inline keyword was causing the build to fail.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941971</commentid>
    <comment_count>24</comment_count>
      <attachid>214693</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 12:36:51 -0700</bug_when>
    <thetext>Comment on attachment 214693
patch that fixes the failing test. the inline keyword was causing the build to fail.

Clearing flags on attachment: 214693

Committed r157725: &lt;http://trac.webkit.org/changeset/157725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941972</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 12:36:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942540</commentid>
    <comment_count>26</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-22 18:00:54 -0700</bug_when>
    <thetext>A test added in this commit is failing on the bots: bug 123193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942836</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-23 14:07:52 -0700</bug_when>
    <thetext>Another layout tests from this patch is still flakily failing on Mac. Filed bug 123220.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943242</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-24 11:57:32 -0700</bug_when>
    <thetext>And another, bug 123282.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943267</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-24 12:26:28 -0700</bug_when>
    <thetext>You should avoid using &lt;video&gt; in layout tests if possible. Doing so always contributes to flakey tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943288</commentid>
    <comment_count>30</comment_count>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-10-24 12:59:21 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; You should avoid using &lt;video&gt; in layout tests if possible. Doing so always contributes to flakey tests.

true.
tests use events and timers to make sure the 1st frame gets rendered. but still it doesn&apos;t work all the time.
but you just have to use &lt;video&gt; in a patch for accelerated compositing.
plus, the use case of video in regions is what got us into investigating accelerated compositing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212459</attachid>
            <date>2013-09-24 06:19:59 -0700</date>
            <delta_ts>2013-10-18 09:19:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch84900v8.diff</filename>
            <type>text/plain</type>
            <size>84457</size>
            <attacher name="Mihai Maerean">mmaerean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NDUwZDJjLi44MjIzYzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMtMDkt
MjMgIE1paGFpIE1hZXJlYW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1j
b21wb3NpdGluZy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2NyYXNo
LXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvZmxvYXRlZC1yZWdp
b24td2l0aC10cmFuc2Zvcm1lZC1jaGlsZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Zsb2F0ZWQtcmVnaW9uLXdpdGgt
dHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9tb3ZlLWxheWVyLWZyb20tb25l
LXJlZ2lvbi10by1hbm90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9s
YXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24t
dG8tYW5vdGhlci1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
bGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRv
dy1ib3JkZXItcGFkZGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5
ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1i
b3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9wcm9wYWdhdGUtcmVnaW9u
LWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZpZGVvLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcv
cmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3JlZ2lvbi1h
cy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zv
cm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm1l
ZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFu
c2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29t
cG9zaXRpbmcvei1pbmRleC11cGRhdGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0
ZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wOS0yNCAgQW5kcmVpIFBhcnZ1ICA8cGFydnVAYWRvYmUu
Y29tPgogCiAgICAgICAgIFtDU1MgQmFja2dyb3VuZF0gcmVwZWF0OiByb3VuZCBzaG91bGQgcm91
bmQgdGhlIG51bWJlciBvZiB0aWxlcyB0byB0aGUgbmVhcmVzdCBuYXR1cmFsIG51bWJlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21w
b3NpdGluZy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9jcmFz
aC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU2OTc3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2NyYXNoLXRyYW5z
Zm9ybS1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVn
aW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVk
IHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7
CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKwkJCS50cmFuc2Zvcm1l
ZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7
CisJCQl9CisJCQkuY29udGVudCB7CisJCQl9CisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LXRy
YW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBs
aWtlIHRoZSByZWdpb24qLworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0PgorCQkJd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgZnVuY3Rpb24gKCkgeworCQkJCXZhciBkaXYgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdHJhbnNmb3JtZWQiKTsKKwkJCQlmb3IodmFyIGkgPSAw
OyBpIDwgMTA7ICsraSApIHsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJ0cmFuc2Zvcm1lZCBjb250
ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQkJCWRpdi5jbGFzc05hbWUg
PSAiY29udGVudCI7CisJCQkJCWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJCX0KKwkJCX0s
IGZhbHNlKTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGlkPSJ0cmFu
c2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8
L2Rpdj4KKwkJPGRpdiBpZD0idHJhbnNmb3JtZWQiIGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50
Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0
cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJ
CTxkaXY+VGVzdCBQQVNTRVMgaWYgaXQgZG9lc24ndCBjcmFzaCBvciBhc3NlcnQ8L2Rpdj4KKwk8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9j
cmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9jcmFzaC10cmFuc2Zvcm0taW5zaWRl
LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMWUzZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxl
PkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVh
ZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4K
KwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsK
KwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgx
NWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkuY29udGVudCB7CisJCQkJLXdlYmtpdC1m
bG93LWludG86dGhlRmxvdzsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1m
cm9tOnRoZUZsb3c7CisJCQl9CisJCTwvc3R5bGU+CisJCTxzY3JpcHQ+CisJCQl3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lciggImxvYWQiLCBmdW5jdGlvbiAoKSB7CisJCQkJdmFyIGRpdiA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoIiN0cmFuc2Zvcm1lZCIpOworCQkJCWZvcih2YXIgaSA9IDA7IGkg
PCAxMDsgKytpICkgeworCQkJCQlkaXYuY2xhc3NOYW1lID0gInRyYW5zZm9ybWVkIGNvbnRlbnQi
OworCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJj
b250ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQkJfQorCQkJfSwgZmFs
c2UpOworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgaWQ9InRyYW5zZm9y
bWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3JtZWQgY29udGVudDwvZGl2
PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRy
YW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0iY29udGVudCI+bm90IHRyYW5z
Zm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KKwkJPGRp
dj5UZXN0IFBBU1NFUyBpZiBpdCBkb2Vzbid0IGNyYXNoIG9yIGFzc2VydDwvZGl2PgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Zsb2F0
ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvZmxvYXRlZC1y
ZWdpb24td2l0aC10cmFuc2Zvcm1lZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNjM3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Zsb2F0ZWQt
cmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU3
IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4KKwkJPHN0eWxlPgor
CQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJ
LmNvbnRlbnQgeworCQkJfQorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJ
CWRpc3BsYXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7CisJCQkJd2lkdGg6IDIx
MHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKwkJ
CQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9z
aXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJfQorCQkJLnRleHQgeworCQkJCXdpZHRo
OiA2MDBweDsKKwkJCX0KKwkJCSogeworCQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKKwkJCQlw
YWRkaW5nOiAycHg7CisJCQkJbWFyZ2luOiAzcHg7CisJCQl9CisJCTwvc3R5bGU+CisJCTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9jb21wb3NpdGluZy9yZXNvdXJjZXMvbWVkaWEtdGVzdGluZy5q
cyI+PC9zY3JpcHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9tZWRpYS9tZWRpYS1maWxl
LmpzIj48L3NjcmlwdD4KKworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgorCQkJZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0KKworCQkJd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlkZW8sICcuLi8uLi8u
Li8uLi9tZWRpYS9jb250ZW50L2NvdW50aW5nJywgbnVsbCwgdGVzdERvbmUpOworCQkJfTsKKwkJ
PC9zY3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij4KKwkJCUxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBN
b2xsaXRpYSwgY3VwaWRpdGF0ZSwgcG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3Jy
dXB0aSBzdXNjaXBpdCB0ZW1wb3JhIGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1
dGEgcmVwZWxsYXQgcGVyc3BpY2lhdGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFn
bmkgYSB2b2x1cHRhcyBtYXhpbWUgb2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIAorCQkJ
PGRpdiBjbGFzcz0icmVnaW9uIj4KKwkJCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5Mb25nIHRleHQg
aW5zaWRlIHRoZSByZWdpb248L2Rpdj4KKwkJCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNm
b3JtZWQiIGhlaWdodD0iMTAwIiB3aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRl
bz4KKwkJCQk8ZGl2IGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIj5Mb25nIHRleHQgaW5zaWRl
IHRoZSByZWdpb248L2Rpdj4KKwkJCTwvZGl2PgorCQkJIEV0LCBhZCBzaXQgcHJhZXNlbnRpdW0g
cmVjdXNhbmRhZSBvbW5pcyByZWljaWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJv
IHJlcHJlaGVuZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVn
aWF0IGl1cmUgc29sdXRhIG1pbmltYSBzdXNjaXBpdC48L2Rpdj4KKwkJPGRpdiBjbGFzcz0idGV4
dCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVs
aXQuIE1vbGxpdGlhLCBjdXBpZGl0YXRlLCBwb3JybywgZGlnbmlzc2ltb3MgZnVnYSBpbXBlZGl0
IGNvcnJ1cHRpIHN1c2NpcGl0IHRlbXBvcmEgZWFydW0gb2RpdCBhc3BlcmlvcmVzIHF1aWEgbmFt
IHNvbHV0YSByZXBlbGxhdCBwZXJzcGljaWF0aXMgaXN0ZSBldCB2b2x1cHRhdGVtIG1vbGVzdGlh
ZSBtYWduaSBhIHZvbHVwdGFzIG1heGltZSBvZmZpY2lpcyBpdXN0byBkb2xvciB1dCBkaWN0YS4g
RXQsIGFkIHNpdCBwcmFlc2VudGl1bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNpZW5kaXMgaXBzYSBl
dmVuaWV0IGFjY3VzYW50aXVtIHZlcm8gcmVwcmVoZW5kZXJpdCBlbmltIG1pbnVzIHBlcmZlcmVu
ZGlzIHNhcGllbnRlIG1heGltZSBmdWdpYXQgaXVyZSBzb2x1dGEgbWluaW1hIHN1c2NpcGl0Ljwv
ZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBv
c2l0aW5nL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvZmxvYXRl
ZC1yZWdpb24td2l0aC10cmFuc2Zvcm1lZC1jaGlsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdiZWY4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Zsb2F0ZWQtcmVnaW9u
LXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJ
LXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJ
CS13ZWJraXQtZmxvdy1pbnRvOiB0aGVGbG93OworCQkJfQorCQkJLnRyYW5zZm9ybWVkIHsKKwkJ
CQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0K
KwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiB0aGVGbG93OworCQkJCWRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7CisJCQkJd2lkdGg6IDIxMHB4Owor
CQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKwkJCX0KKwkJ
CS50ZXh0IHsKKwkJCQl3aWR0aDogNjAwcHg7CisJCQl9CisJCQkqIHsKKwkJCQlib3JkZXI6c29s
aWQgMXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJCW1hcmdpbjogM3B4OworCQkJfQor
CQk8L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY29tcG9zaXRpbmcvcmVzb3Vy
Y2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgewor
CQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8g
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZp
ZGVvKHZpZGVvLCAnLi4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRl
c3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBj
bGFzcz0idGV4dCI+CisJCQlMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzaWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWduaXNzaW1v
cyBmdWdhIGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0IGFzcGVy
aW9yZXMgcXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0IHZvbHVw
dGF0ZW0gbW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1c3RvIGRv
bG9yIHV0IGRpY3RhLiAKKwkJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCQlFdCwgYWQg
c2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQg
YWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMgcGVyZmVyZW5kaXMgc2Fw
aWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3VzY2lwaXQuCisJCTwvZGl2
PgorCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2Vj
dGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWdu
aXNzaW1vcyBmdWdhIGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0
IGFzcGVyaW9yZXMgcXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0
IHZvbHVwdGF0ZW0gbW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1
c3RvIGRvbG9yIHV0IGRpY3RhLiBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21u
aXMgcmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0
IGVuaW0gbWludXMgcGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0
YSBtaW5pbWEgc3VzY2lwaXQuPC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPkxvbmcgdGV4
dCBpbnNpZGUgdGhlIHJlZ2lvbjwvZGl2PgorCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNm
b3JtZWQiIGhlaWdodD0iMTAwIiB3aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRl
bz4KKwkJPGRpdiBjbGFzcz0iY29udGVudCB0cmFuc2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0
aGUgcmVnaW9uPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRl
ZC1jb21wb3NpdGluZy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdhZTQxZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0
ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVn
IDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNo
b3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8
c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJ
fQorCisJCQkuY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7
CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJfQorCisJCQlib2R5IC5yZWdpb246
bnRoLWNoaWxkKDIpIC5jb250ZW50IHsKKwkJCQltYXJnaW4tdG9wOiAwcHg7IC8qbWFyZ2lucyBh
cmUgY29sbGFwc2VkIHdoZW4gZnJhZ21lbnRlZCovCisJCQl9CisKKwkJCS5tb3Zlc1RoZUxheWVy
VG9OZXh0UmVnaW9uIHsKKwkJCQloZWlnaHQ6IDIyNXB4OworCQkJfQorCisJCQkjY2F1c2VzVGhl
UmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVoo
MXB4KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQqLworCQkJCXdpZHRoOiAxMDBweDsKKwkJ
CQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCX0KKworCQkJ
LnJlZ2lvbiB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigxcHgpOyAvKnNvIHRo
ZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJCWhlaWdodDog
MjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJfQorCQk8L3N0eWxlPgorCTwv
aGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4K
KwkJCTxkaXYgaWQ9IndpbGxCZUFkZGVkVG9UaGVGbG93IiBjbGFzcz0iY29udGVudCBtb3Zlc1Ro
ZUxheWVyVG9OZXh0UmVnaW9uIj5nb2VzIGluIHRoZSAxc3QgcmVnaW9uLjwvZGl2PgorCQk8L2Rp
dj4KKworCQlzb21lIHRleHQuCisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4KKwkJCTxkaXYgY2xh
c3M9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAyLgorCQkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQkJc29tZSB0ZXh0IDMuCisJCQkJPC9kaXY+CisJCQkJ
c29tZSB0ZXh0IDQuCisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRl
eHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQu
PC9kaXY+CisJCQk8L2Rpdj4KKwkJPC9kaXY+CisKKwkJc29tZSB0ZXh0IDUuCisKKwkJPHA+SWYg
d2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2Ug
dHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgdG8gbWFrZSBzdXJlIHRoYXQgdGhl
IHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMuPC9wPgorCTwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUtbGF5ZXIt
ZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdp
b24tdG8tYW5vdGhlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFk
NmI0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJz
L2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUtbGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFu
b3RoZXIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBz
aG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJ
PHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJ
CX0KKworCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdp
ZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFll
bGxvdzsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQkt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJ
CQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCX0KKworCQkJ
Lm1vdmVzVGhlTGF5ZXJUb05leHRSZWdpb24geworCQkJCWhlaWdodDogMjI1cHg7CisJCQl9CisK
KwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWhlaWdodDog
MjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJfQorCQk8L3N0eWxlPgorCTwv
aGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBjbGFzcz0iY29udGVudCI+
Z29lcyBpbiB0aGUgMXN0IHJlZ2lvbi48L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij4K
KwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0
ZWQiPgorCQkJCXNvbWUgdGV4dCAzLgorCQkJPC9kaXY+CisJCQlzb21lIHRleHQgNC4KKwkJCTxk
aXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQk8ZGl2PnNv
bWUgdGV4dC48L2Rpdj4KKwkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQk8L2Rpdj4KKworCQk8
ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMSI+PC9kaXY+CisKKwkJc29tZSB0ZXh0LgorCisJCTxk
aXYgY2xhc3M9InJlZ2lvbiIgaWQ9InIyIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisKKwkJPHA+
SWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwg
d2UgdHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgdG8gbWFrZSBzdXJlIHRoYXQg
dGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMuPC9wPgorCisJCTxzY3Jp
cHQ+CisJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZG8gdGhlIGxheW91dC4KKwkJCWRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkgLmNvbnRlbnQ6Zmlyc3QtY2hpbGQiKS5jbGFzc05h
bWUgPSAiY29udGVudCBtb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIjsKKwkJPC9zY3JpcHQ+CisJ
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcv
cHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOTBmYjQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBv
c2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEy
MDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5
bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQor
CisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJ
CQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVw
eDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJI3JlZ2lv
biB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owor
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+
CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBp
ZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCQlzb21lIHRleHQgMy4KKwkJCQk8L2Rpdj4KKwkJCQlz
b21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1h
a2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3Ms
IG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9z
aXRpbmcvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWZvci12aWRl
by1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2ODli
YjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2Fj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXIt
cGFkZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4K
Kwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBm
cm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25z
JyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250
LXNtb290aGluZzogbm9uZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQor
CisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6
IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHgg
NHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJCXdpZHRoOiA5MCU7CisJCQkJ
Ym9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHgg
NnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4
IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxl
PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY29tcG9zaXRpbmcvcmVzb3VyY2VzL21lZGlh
LXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVkaWEv
bWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisK
KwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVv
LCAnLi4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsK
KwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJ
CTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQg
Mi4KKwkJCQk8dmlkZW8gaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJv
bHM+PC92aWRlbz4KKwkJCQlzb21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29t
ZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMg
Ym9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZpZGVvIGxheWVy
cyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNj
ZWxlcmF0ZWQtY29tcG9zaXRpbmcvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1w
YWRkaW5nLWZvci12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjYzZjNkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5
ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1i
b3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9t
IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBs
YXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNt
b290aGluZzogbm9uZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQorCisJ
CQkjY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJd2lkdGg6IDE1
MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4
IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNyZWdp
b24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCXdpZHRoOiA5MCU7CisJCQkJ
Ym9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHgg
NnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4
IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxl
PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY29tcG9zaXRpbmcvcmVzb3VyY2VzL21lZGlh
LXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVkaWEv
bWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisK
KwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVv
LCAnLi4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsK
KwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJ
CTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIuCisJCQk8dmlkZW8gaGVpZ2h0PSIy
NzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJCXNvbWUgdGV4
dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDUu
CisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywg
cGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZpZGVvIGxheWVycyBpbnNpZGUg
aXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNv
bXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGlu
Zy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGMzM2M4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9w
cm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbApAQCAtMCwwICsx
LDUxIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9u
c10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVu
ZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJ
CQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgewor
CQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWln
aHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAy
cHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJ
CSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBweDsK
KwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRk
aW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9
CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1z
aGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47
CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91Ymxl
IDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdw
eCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlz
b21lIHRleHQgMS4KKwkJPGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxk
aXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQlzb21lIHRleHQgMy4K
KwkJCTwvZGl2PgorCQkJc29tZSB0ZXh0IDQuCisJCTwvZGl2PgorCQk8ZGl2IGlkPSJyZWdpb24i
PjwvZGl2PgorCQlzb21lIHRleHQgNS4KKwkJPHA+TWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbiBw
cm9wYWdhdGVzIGl0cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRvd3Mg
dG8gbGF5ZXJzIGluc2lkZSBpdC48L3A+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXll
cnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxv
d3RocmVhZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9h
Y2NlbGVyYXRlZC1jb21wb3NpdGluZy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93dGhy
ZWFkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI5
ZWU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMv
YWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3Ro
cmVhZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8
dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cg
dGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3Rp
dGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBu
b25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdo
dDogMTAwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJw
eCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJ
I2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTog
dHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4Owor
CQkJCWhlaWdodDogNDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRp
bmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0K
KworCQkJI3JlZ2lvbiB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJ
CWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7
CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHgg
MTBweDsKKwkJCX0KKworCQkJI291dHRlclJlZ2lvbiB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJw
eCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5l
OiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogN3B4IDhweCA5cHggMTBweDsKKwkJCQlt
YXJnaW46IDhweCA5cHggMTBweCAxMXB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8
Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9Im91dHRlclJlZ2lvbiI+CisJCQk8ZGl2
IGlkPSJyZWdpb24iPgorCQkJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJCQlzb21lIHRleHQgMi4K
KwkJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCQkJc29t
ZSB0ZXh0IDMuCisJCQkJCTwvZGl2PgorCQkJCQlzb21lIHRleHQgNC4KKwkJCQk8L2Rpdj4KKwkJ
CTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPlJlbmRlclJlZ2lvbnMgbWln
aHQgYmVjb21lIFJlbmRlckxheWVycyBmb3IgdGhlIGZvbGxvd2luZyBmbG93IHRocmVhZHMuPC9w
PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0
aW5nL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVnaW9uLWFz
LWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ4M2JmZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3JlZ2lvbi1hcy1sYXllci1p
bi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRv
OiBpbm5lckZsb3c7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJCQkJ
YmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsK
KwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lv
blRvQmVDb21wb3NpdGVkIHsKKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4Owor
CQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4
OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJfQorCisJCQkudHJhbnNmb3JtZWQg
eworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0z
NXB4KTsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZyb206IGlubmVy
RmxvdzsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogb3V0dGVyRmxvdzsKKwkJCQlib3gtc2hhZG93
OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJ
CW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7
CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCisJCQkjb3V0dGVyUmVnaW9u
IHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogb3V0dGVyRmxvdzsKKwkJCQlib3gtc2hhZG93OiAy
cHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91
dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA3cHggOHB4IDlweCAxMHB4Owor
CQkJCW1hcmdpbjogOHB4IDlweCAxMHB4IDExcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKworCQk8ZGl2IGlkPSJvdXR0ZXJSZWdpb24iPjwv
ZGl2PgorCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIuCisJCQk8ZGl2IGlk
PSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+CisJCQkJc29tZSB0ZXh0IDMuCisJCQk8
L2Rpdj4KKwkJCXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rp
dj4KKworCQlzb21lIHRleHQgNS4KKworCQk8cD5SZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBS
ZW5kZXJMYXllcnMgZm9yIHRoZSBmb2xsb3dpbmcgZmxvdyB0aHJlYWRzLjwvcD4KKworCQk8c2Ny
aXB0PgorCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQlkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCIjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQiKS5jbGFzc05hbWUgPSAidHJhbnNm
b3JtZWQiOworCQk8L3NjcmlwdD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9h
Y2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12
aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3RyYW5zZm9ybS10cmFuc3BhcmVudC1w
b3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zv
cm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0
bGU+CisJCTxzdHlsZT4KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06
cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkudHJhbnNwYXJlbnQgewor
CQkJCW9wYWNpdHk6IDAuNTsKKwkJCX0KKwkJCS5wb3NpdGlvbmVkIHsKKwkJCQlwb3NpdGlvbjog
cmVsYXRpdmU7CisJCQl9CisJCQkuY29udGVudCB7CisJCQkJd2hpdGUtc3BhY2U6IG5vd3JhcDsK
KwkJCX0KKwkJCS5yZWdpb24geworCQkJCXdpZHRoOjIwMHB4OworCQkJCWJvcmRlci1sZWZ0LXdp
ZHRoOiA1cHg7CisJCQkJYm9yZGVyLXRvcC13aWR0aDogMWVtOworCQkJCXBhZGRpbmctbGVmdDog
NCU7CisJCQkJcGFkZGluZy10b3A6IDNwdDsKKwkJCQltYXJnaW46IDIwcHg7CisJCQkJLXdlYmtp
dC10cmFuc2Zvcm06cm90YXRlWigwZGVnKTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1
c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCX0KKwkJCSogeworCQkJCWJvcmRlcjpzb2xpZCAxcHgg
Izg4ODsKKwkJCQlwYWRkaW5nOiAycHg7CisJCQkJbWFyZ2luOiAzcHg7CisJCQl9CisJCTwvc3R5
bGU+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9jb21wb3NpdGluZy9yZXNvdXJjZXMvbWVk
aWEtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9tZWRp
YS9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPgorCQkJZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0K
KworCQkJd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlk
ZW8sICcuLi8uLi8uLi8uLi9tZWRpYS9jb250ZW50L2NvdW50aW5nJywgbnVsbCwgdGVzdERvbmUp
OworCQkJfTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGNsYXNzPSJy
ZWdpb24iPgorCQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3JtZWQg
Y29udGVudDwvZGl2PgorCQkJPGRpdiBjbGFzcz0idHJhbnNwYXJlbnQgY29udGVudCI+dHJhbnNw
YXJlbnQgY29udGVudDwvZGl2PgorCQkJPGRpdiBjbGFzcz0icG9zaXRpb25lZCBjb250ZW50Ij5w
b3NpdGlvbmVkIGNvbnRlbnQ8L2Rpdj4KKwkJCTx2aWRlbyBjbGFzcz0iY29udGVudCIgaGVpZ2h0
PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJCTxkaXYg
Y2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTwvZGl2Pgor
CTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0Nzg2MGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNv
bXBvc2l0aW5nL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1y
ZWdpb24uaHRtbApAQCAtMCwwICsxLDU2IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAjPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRy
YW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS50cmFuc3Bh
cmVudCB7CisJCQkJb3BhY2l0eTogMC41OworCQkJfQorCQkJLnBvc2l0aW9uZWQgeworCQkJCXBv
c2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKwkJCS5jb250ZW50IHsKKwkJCQktd2Via2l0LWZsb3ct
aW50bzp0aGVGbG93OworCQkJCXdoaXRlLXNwYWNlOiBub3dyYXA7CisJCQl9CisJCQkucmVnaW9u
IHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTp0aGVGbG93OworCQkJCXdpZHRoOjIwMHB4OworCQkJ
CWJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7CisJCQkJYm9yZGVyLXRvcC13aWR0aDogMWVtOworCQkJ
CXBhZGRpbmctbGVmdDogNCU7CisJCQkJcGFkZGluZy10b3A6IDNwdDsKKwkJCQltYXJnaW46IDIw
cHg7CisJCQl9CisJCQkqIHsKKwkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7CisJCQkJcGFkZGlu
ZzogMnB4OworCQkJCW1hcmdpbjogM3B4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vY29tcG9zaXRpbmcvcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwv
c2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+
PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0
Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vLi4vLi4v
bWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJCX07CisJCTwvc2Ny
aXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVu
dCI+dHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJ0cmFuc3BhcmVudCBj
b250ZW50Ij50cmFuc3BhcmVudCBjb250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InBvc2l0aW9u
ZWQgY29udGVudCI+cG9zaXRpb25lZCBjb250ZW50PC9kaXY+CisJCTx2aWRlbyBjbGFzcz0iY29u
dGVudCIgaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRl
bz4KKwkJPGRpdiBjbGFzcz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4K
KwkJPGRpdiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUt
dHJhbnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRl
LXRyYW5zZm9ybWVkLWxheWVyLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTEyZWJiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXIt
aW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1OSBAQAor
PGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBs
YXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUg
cmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJr
aXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50IHsKKwkJCQl3aWR0
aDogMTUwcHg7CisJCQkJaGVpZ2h0OiAxMDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxs
b3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1
cHggNnB4OworCQkJfQorCisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQl3aWR0aDogMTAwcHg7
CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFk
ZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJ
fQorCisJCQkuaW5uZXIgeworCQkJCWJhY2tncm91bmQtY29sb3I6IEN5YW47CisJCQl9CisKKwkJ
CSNyZWdpb24geworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDFweCk7IC8qc28g
dGhlIGRpdiBpcyBjb21wb3NpdGVkLCBqdXN0IGxpa2UgdGhlIHJlZ2lvbiovCisJCQkJYm94LXNo
YWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsK
KwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUg
NXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4
IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNv
bWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJ
CQkJc29tZSB0ZXh0IDIuCisJCQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQiPgorCQkJCQlzb21l
IHRleHQgMy4KKwkJCQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQgaW5uZXIiPgorCQkJCQkJc29t
ZSB0ZXh0IDQuCisJCQkJCTwvZGl2PgorCQkJCQlzb21lIHRleHQgNS4KKwkJCQk8L2Rpdj4KKwkJ
CQlzb21lIHRleHQgNi4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDcuCisJCTxw
PlJlbmRlcmluZyBhIHRyYW5zZm9ybWVkIGxheWVyIGluc2lkZSBhbm90aGVyIHRyYW5zZm9ybWVk
IGxheWVyLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRl
ZC1jb21wb3NpdGluZy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9z
aXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE1ODc3MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLmh0bWwKQEAgLTAs
MCArMSw1OSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJl
Z2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3Rl
ZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwg
eworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50
IHsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzsKKwkJCQl3aWR0aDogMTUwcHg7CisJCQkJ
aGVpZ2h0OiAxMDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGlu
ZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQor
CisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0z
MHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0
MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2
cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJfQorCisJCQkuaW5uZXIg
eworCQkJCWJhY2tncm91bmQtY29sb3I6IEN5YW47CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJ
CS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBC
bGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAz
cHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRp
bmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9
CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBp
ZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVk
Ij4KKwkJCQlzb21lIHRleHQgMy4KKwkJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBpbm5lciI+
CisJCQkJCXNvbWUgdGV4dCA0LgorCQkJCTwvZGl2PgorCQkJCXNvbWUgdGV4dCA1LgorCQkJPC9k
aXY+CisJCQlzb21lIHRleHQgNi4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+
CisJCXNvbWUgdGV4dCA3LgorCQk8cD5SZW5kZXJpbmcgYSB0cmFuc2Zvcm1lZCBsYXllciBpbnNp
ZGUgYW5vdGhlciB0cmFuc2Zvcm1lZCBsYXllci48L3A+CisJPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvei1pbmRleC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGlu
Zy96LWluZGV4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMGVjZjc2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9s
YXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvei1pbmRleC1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsNjQgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1s
IHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVu
dCB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHgg
NHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJLmNhdXNl
c1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGlt
ZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdw
eCA4cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7CisJCQl9CisKKwkJCS5zZWNvbmQg
eworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0y
NXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47CisJCQkJbWFyZ2luLXRvcDotMWVtOwor
CQkJfQorCisJCQkuejEsIC56MiB7CisJCQkJcG9zaXRpb246IHJlbGF0aXZlOworCQkJfQorCisJ
CQkuejEgeworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJCS56MiB7CisJCQkJei1pbmRleDog
MjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJs
YWNrOworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNw
eCA0cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGlu
ZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0K
KwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlk
PSJyZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJ
PGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAz
LjwvZGl2PgorCQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNl
Y29uZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+CisJCQkJc29tZSB0ZXh0IDUuCisJCQk8L2Rpdj4K
KwkJPC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4
cGVjdGVkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRl
ZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0
ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZjkx
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2Fj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw2NCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJl
Z2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3Rl
ZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwg
eworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50
IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0
cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkuY2F1c2Vz
VGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1l
OworCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4
IDhweDsKKwkJCQlib3JkZXI6IHNvbGlkIDFweCBCbGFjazsKKwkJCX0KKworCQkJLnNlY29uZCB7
CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTI1
cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6Q3lhbjsKKwkJCQltYXJnaW4tdG9wOi0xZW07CisJ
CQl9CisKKwkJCS56MSwgLnoyIHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9CisKKwkJ
CS56MSB7CisJCQkJei1pbmRleDogMTsKKwkJCX0KKworCQkJLnoyIHsKKwkJCQl6LWluZGV4OiAy
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxh
Y2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4
IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5n
OiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQor
CQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9
InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQgMi4KKwkJCQk8
ZGl2IGNsYXNzPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MiI+c29tZSB0ZXh0IDMu
PC9kaXY+CisJCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vj
b25kIHoxIj5zb21lIHRleHQgNC48L2Rpdj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2Pgor
CQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhw
ZWN0ZWQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVk
LWNvbXBvc2l0aW5nL3otaW5kZXgtdXBkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXgtdXBkYXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM4MzVlYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvei1pbmRleC11cGRhdGUuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKwk8aGVhZD4K
KwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBm
bG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMu
PC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGlu
Zzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBm
bG93OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4
IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS5jYXVz
ZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z
bGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6IExp
bWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3
cHggOHB4OworCQkJCWJvcmRlcjogc29saWQgMXB4IEJsYWNrOworCQkJfQorCisJCQkuc2Vjb25k
IHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgt
MjVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpDeWFuOworCQkJCW1hcmdpbi10b3A6LTFlbTsK
KwkJCX0KKworCQkJLnoxLCAuejIgeworCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKwor
CQkJLnoxIHsKKwkJCQl6LWluZGV4OiAxOworCQkJfQorCisJCQkuejIgeworCQkJCXotaW5kZXg6
IDI7CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93Owor
CQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAz
cHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGlu
ZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQlt
YXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxi
b2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQg
Mi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoxIj5zb21l
IHRleHQgMy48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3Np
dGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+CisJCQlzb21lIHRleHQgNS4KKwkJPC9k
aXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWlu
ZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwvcD4KKwkJPHNjcmlwdD4KKwkJCWRvY3VtZW50
Lm9mZnNldFRvcDsKKwkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jYXVzZXNUaGVSZWdpb25U
b0JlQ29tcG9zaXRlZCIpLmNsYXNzTmFtZSA9ICJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRl
ZCB6MiI7CisJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2Vjb25kIikuY2xhc3NOYW1lID0g
ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MSI7CisJCTwvc2NyaXB0Pgor
CTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3otaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0
ZWQtY29tcG9zaXRpbmcvei1pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmEwYzhiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXguaHRtbApAQCAtMCwwICsx
LDY1IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9u
c10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVu
ZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJ
CQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgewor
CQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxv
dzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVw
eCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwor
CQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4
OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29saWQgMXB4IEJs
YWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpDeWFu
OworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgeworCQkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAxOworCQkJfQor
CisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJCS13
ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFj
azsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHgg
NHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6
IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJ
CTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0i
Y29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lv
blRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImNh
dXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+
CisJCQlzb21lIHRleHQgNS4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CisJ
CXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwvcD4K
Kwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGQyNmQ3NmIuLjQ0ZjFhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAxMy0w
OS0yMyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NT
IFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxl
Y3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiB0aGUgd29yayBv
ZiBBbGV4YW5kcnUgQ2hpY3VsaXRhIGF0IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1l
bnQuY2dpP2lkPTIwMzg3MiZhY3Rpb249cmV2aWV3CisKKyAgICAgICAgVGhlIGNvbXBvc2l0ZWQg
bGF5ZXJzIGluc2lkZSB0aGUgbmFtZWQgZmxvdyB0aHJlYWRzIGFyZSBjb2xsZWN0ZWQgYXMgcGFy
dCBvZiB0aGUgcmVnaW9ucy4KKyAgICAgICAgV2hlbiBhIHJlZ2lvbiBkaXNwbGF5cyBhIGxheWVy
IHRoYXQgbmVlZHMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgd2UgYWN0aXZhdGUgdGhlIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nIGZvcgorICAgICAgICB0aGF0IHJlZ2lvbiB0b28gKGluc2lkZSBS
ZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MpLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Ny
YXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVn
aW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvZmxvYXRlZC1yZWdpb24td2l0aC10
cmFuc2Zvcm1lZC1jaGlsZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvbGF5ZXJz
L2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUtbGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFu
b3RoZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRl
ZC1jb21wb3NpdGluZy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21w
b3NpdGluZy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQt
Y29tcG9zaXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24uaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3Np
dGluZy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96
LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9h
Y2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0ZS5odG1sOiBBZGRlZC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lm
TmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOiBXaGVuIHRoZSBsYXlvdXQg
b2YgdGhlIGZsb3cgdGhyZWFkIGlzIG92ZXIgKGluY2x1ZGluZyB0aGUgMiBwaGFzZSBsYXlvdXQp
LAorICAgICAgICB3ZSB1cGRhdGUgYWxsIHRoZSBtYXBwaW5ncyBiZXR3ZWVuIHRoZSBsYXllcnMg
aW5zaWRlIHRoZSBmbG93IHRocmVhZCBhbmQgdGhlIHJlZ2lvbnMgd2hlcmUgdGhvc2UgbGF5ZXJz
IHdpbGwgYmUKKyAgICAgICAgcGFpbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCk6IFdoZXRoZXIgYW55IG9mIHRo
ZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbG93VGhyZWFkOjpnZXRMYXllckxpc3RGb3JSZWdpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRv
UmVnaW9uTWFwcGluZ3MpOiBUcmlnZ2VycyBhbiB1cGRhdGUgb2YgdGhlIGxheWVycyBpZiBhIGxh
eWVyIGhhcyBtb3ZlZAorICAgICAgICBmcm9tIGEgcmVnaW9uIHRvIGFub3RoZXIgc2luY2UgdGhl
IGxhc3QgdXBkYXRlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6dXBkYXRl
QWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaFJlbmRlckZsb3dUaHJlYWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
Y2FsY3VsYXRlTGF5ZXJCb3VuZHMpOiBUaGUgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGlzIGlnbm9y
ZWQgd2hlbiB3ZSBjYWxjdWxhdGUgdGhlIGJvdW5kcworICAgICAgICBvZiB0aGUgUmVuZGVyVmll
dy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c2hvdWxkQ2xpcENvbXBvc2l0ZWRCb3VuZHMpOiBOb3QgaWYgaXQncyBpbnNpZGUg
YW4gb3V0IG9mIGZsb3cgRmxvdyBUaHJlYWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6IE5vdyBhZGp1c3RzIHRoZSBh
bmNlc3RvckNvbXBvc2l0aW5nQm91bmRzIGZvciB0aGUgRmxvd1RocmVhZC4KKyAgICAgICAgKFdl
YkNvcmU6OmVuY2xvc2luZ0Zsb3dUaHJlYWRBbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OmFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93
VGhyZWFkKTogTWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbiBwcm9wYWdhdGVzCisgICAgICAgIGl0
cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRvd3MgdG8gbGF5ZXJzIGlu
c2lkZSBpdC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50
cyk6IE5vdyBjYWxscyBjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVSZWdpb25Db21wb3Np
dGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSk6IERvIG5vdCBpdGVyYXRlIHRoZSBSZW5k
ZXJGbG93VGhyZWFkIGRpcmVjdGx5LiBXZQorICAgICAgICBhcmUgZ29pbmcgdG8gY29sbGVjdCBj
b21wb3NpdGVkIGxheWVycyBhcyBwYXJ0IG9mIHJlZ2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbkJlQ29tcG9zaXRl
ZCk6IENTUyBSZWdpb25zIGZsb3cgdGhyZWFkcyBkbyBub3QgbmVlZCB0byBiZSBjb21wb3NpdGVk
IGFzIHdlCisgICAgICAgIHVzZSBjb21wb3NpdGVkIFJlbmRlclJlZ2lvbnMgdG8gcmVuZGVyIHRo
ZSBiYWNrZ3JvdW5kIG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFz
b24pOiBJZiBpdCdzIGEgcmVnaW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmFkanVzdFJlZ2lvbkJv
dW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtblNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cHJvcGFnYXRlU3R5bGVUb0Fub255
bW91c0NoaWxkcmVuKTogTm90IGZvciBSZW5kZXJGbG93VGhyZWFkcywgYXMgdGhleSBhcmUgdXBk
YXRlZAorICAgICAgICB0aHJvdWdoIHRoZSBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZSBmdW5j
dGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclJlZ2lvbjo6c2V0UmVxdWlyZXNMYXllckZvckNvbXBvc2l0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dU
aHJlYWRQb3J0aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJSZWdpb25TZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvblNldDo6cmVx
dWlyZXNMYXllcik6IE5ldmVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlTGF5ZXJzKToKKwogMjAxMy0wOS0yNCAgQW5k
cmVpIFBhcnZ1ICA8cGFydnVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgQmFja2dyb3VuZF0g
cmVwZWF0OiByb3VuZCBzaG91bGQgcm91bmQgdGhlIG51bWJlciBvZiB0aWxlcyB0byB0aGUgbmVh
cmVzdCBuYXR1cmFsIG51bWJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93
VGhyZWFkQ29udHJvbGxlci5jcHAKaW5kZXggNjk4ZDE1MC4uOTRlMTJhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBAIC0yNzAs
NyArMjcwLDcgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKCkKICAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJldmVy
c2Ugb3JkZXIgYmVjYXVzZSBSZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBSZW5kZXJMYXllcnMg
Zm9yIHRoZSBmb2xsb3dpbmcgZmxvdyB0aHJlYWRzLgogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdDo6cmV2ZXJzZV9pdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0LT5yYmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPnJl
bmQoKTsgKytpdGVyKSB7CiAgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRl
cmVyID0gKml0ZXI7Ci0gICAgICAgIGZsb3dSZW5kZXJlci0+dXBkYXRlTGF5ZXJUb1JlZ2lvbk1h
cHBpbmdzSWZOZWVkZWQoKTsKKyAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRv
UmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IGZiODNkMjMuLjk5ZDI2N2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTQ2OSw2ICs0
NjksMTAgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hp
bGRyZW4oU3R5bGVQcm9wYWdhdGlvblR5cGUgcHJvcGEKICAgICAgICAgICAgIGNvbnRpbnVlOwog
I2VuZGlmCiAKKyAgICAgICAgLy8gUmVuZGVyRmxvd1RocmVhZHMgYXJlIHVwZGF0ZWQgdGhyb3Vn
aCB0aGUgUmVuZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UgZnVuY3Rpb24uCisgICAgICAgIGlmIChj
aGlsZC0+aXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAg
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgY2hpbGQtPnN0eWxlKCktPmRpc3BsYXko
KSk7CiAgICAgICAgIGlmIChzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkpIHsKICAgICAgICAg
ICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGYxNDgxNjYuLjAyNjli
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
QEAgLTIzNiw5ICsyMzYsMTAgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAg
IC8vIE5vdGUgdGhhdCB0aGVyZSdzIG5vIG5lZWQgdG8gZG8gc28gZm9yIHRoZSBpbmxpbmUgbXVs
dGktY29sdW1uIGFzIHdlIGFyZSBub3QgbW92aW5nIGxheWVycyBpbnRvIGRpZmZlcmVudAogICAg
IC8vIGNvbnRhaW5lcnMsIGJ1dCBqdXN0IGFkanVzdGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIFJl
bmRlckxheWVyQmFja2luZy4KICAgICBpZiAoIW1fbmVlZHNUd29QaGFzZXNMYXlvdXQpIHsKLSAg
ICAgICAgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBJ
ZiB3ZSBoYXZlIGxheWVycyB0aGF0IG1vdmVkIGZyb20gb25lIHJlZ2lvbiB0byBhbm90aGVyLCB3
ZSBzaG91bGQgdHJpZ2dlcgorICAgICAgICAvLyBJZiB3ZSBoYXZlIGxheWVycyB0aGF0IG1vdmVk
IGZyb20gb25lIHJlZ2lvbiB0byBhbm90aGVyLCB3ZSB0cmlnZ2VyCiAgICAgICAgIC8vIGEgY29t
cG9zaXRlZCBsYXllcnMgcmVidWlsZCBpbiBoZXJlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdp
b25zIHdpbGwgY29sbGVjdCB0aGUgcmlnaHQgbGF5ZXJzLgorICAgICAgICBpZiAoaXNPdXRPZkZs
b3dSZW5kZXJGbG93VGhyZWFkKCkgJiYgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCkp
CisgICAgICAgICAgICBsYXllcigpLT5jb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRpbmdMYXllcnNO
ZWVkUmVidWlsZCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0yNTAsMzIgKzI1MSw3MyBAQCB2b2lk
IFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCitib29sIFJlbmRlckZsb3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVz
Y2VuZGFudCgpIGNvbnN0Cit7CisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVy
YXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVu
ZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKKyAg
ICAgICAgaWYgKHJlZ2lvbi0+aGFzTGF5ZXIoKSAmJiByZWdpb24tPmxheWVyKCktPmhhc0NvbXBv
c2l0aW5nRGVzY2VuZGFudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKworY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBSZW5kZXJGbG93VGhy
ZWFkOjpnZXRMYXllckxpc3RGb3JSZWdpb24oUmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0Cit7
CisgICAgaWYgKCFtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBBU1NFUlQoIW1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KTsKKyAgICBSZWdpb25Ub0xh
eWVyTGlzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3IgPSBtX3JlZ2lvblRvTGF5ZXJMaXN0
TWFwLT5maW5kKHJlZ2lvbik7CisgICAgcmV0dXJuIGl0ZXJhdG9yID09IG1fcmVnaW9uVG9MYXll
ckxpc3RNYXAtPmVuZCgpID8gMCA6ICZpdGVyYXRvci0+dmFsdWU7Cit9CisKKy8vIEZJWE1FOiBt
YWtlIGl0IGNvbnN0IHdoZW4gaXQgd29uJ3QgYmUgY2FsbGluZyByZWdpb25BdEJsb2NrT2Zmc2V0
LgogUmVuZGVyUmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5
ZXIoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIpCiB7Ci0gICAgTGF5b3V0UG9pbnQgbGVmdFRvcExv
Y2F0aW9uID0gY2hpbGRMYXllci0+cmVuZGVyQm94KCkgPyBjaGlsZExheWVyLT5yZW5kZXJCb3go
KS0+ZmxpcEZvcldyaXRpbmdNb2RlKExheW91dFBvaW50KCkpIDogTGF5b3V0UG9pbnQoKTsKLSAg
ICBMYXlvdXRQb2ludCBmbG93VGhyZWFkT2Zmc2V0ID0gZmxvb3JlZExheW91dFBvaW50KGNoaWxk
TGF5ZXItPnJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5lclBvaW50KGxlZnRUb3BMb2NhdGlvbiwg
dGhpcywgQXBwbHlDb250YWluZXJGbGlwKSk7CisgICAgaWYgKGNoaWxkTGF5ZXItPnJlbmRlckJv
eCgpKSB7CisgICAgICAgIFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24gPSAwOworICAgICAgICBS
ZW5kZXJSZWdpb24qIGVuZFJlZ2lvbiA9IDA7CisgICAgICAgIGdldFJlZ2lvblJhbmdlRm9yQm94
KGNoaWxkTGF5ZXItPnJlbmRlckJveCgpLCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKTsKKyAgICAg
ICAgLy8gVGhlIHZpZGVvIHRhZyBpcyBzdWNoIGEgYm94IHRoYXQgZG9lc24ndCBoYXZlIGEgcmVn
aW9uIHJhbmdlIGJlY2F1c2UgaXQncyBpbmxpbmUgKGJ5IGRlZmF1bHQpLgorICAgICAgICBpZiAo
c3RhcnRSZWdpb24pCisgICAgICAgICAgICByZXR1cm4gc3RhcnRSZWdpb247CisgICAgfQorCisg
ICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UnbGwgaGF2ZSByZWdpb24gcmFuZ2VzIGZv
ciBpbmxpbmVzIGFzIHdlbGwuCisgICAgTGF5b3V0UG9pbnQgZmxvd1RocmVhZE9mZnNldCA9IGZs
b29yZWRMYXlvdXRQb2ludChjaGlsZExheWVyLT5yZW5kZXJlcigpLmxvY2FsVG9Db250YWluZXJQ
b2ludChMYXlvdXRQb2ludCgpLCB0aGlzLCBBcHBseUNvbnRhaW5lckZsaXApKTsKICAgICByZXR1
cm4gcmVnaW9uQXRCbG9ja09mZnNldCgwLCBmbGlwRm9yV3JpdGluZ01vZGUoaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IGZsb3dUaHJlYWRPZmZzZXQueSgpIDogZmxvd1RocmVhZE9mZnNldC54
KCkpLCB0cnVlLCBEaXNhbGxvd1JlZ2lvbkF1dG9HZW5lcmF0aW9uKTsKIH0KIAotdm9pZCBSZW5k
ZXJGbG93VGhyZWFkOjp1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihSZW5kZXJMYXllciogbGF5
ZXIsIExheWVyVG9SZWdpb25NYXAmIGxheWVyVG9SZWdpb25NYXAsIFJlZ2lvblRvTGF5ZXJMaXN0
TWFwJiByZWdpb25Ub0xheWVyTGlzdE1hcCwgYm9vbCYgbmVlZHNMYXllclVwZGF0ZSkKK1JlbmRl
clJlZ2lvbiogUmVuZGVyRmxvd1RocmVhZDo6Y2FjaGVkUmVnaW9uRm9yQ29tcG9zaXRlZExheWVy
KFJlbmRlckxheWVyKiBjaGlsZExheWVyKSBjb25zdAoreworICAgIGlmICghbV9sYXllclRvUmVn
aW9uTWFwKQorICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQoIW1fbGF5ZXJzVG9SZWdpb25N
YXBwaW5nc0RpcnR5KTsKKyAgICByZXR1cm4gbV9sYXllclRvUmVnaW9uTWFwLT5nZXQoY2hpbGRM
YXllcik7Cit9CisKKy8vIEZJWE1FOiBNYWtlIGl0IGNvbnN0IHdoZW4gcmVnaW9uRm9yQ29tcG9z
aXRlZExheWVyIHdpbGwgYmUgY29uc3QuCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxh
eWVyVG9SZWdpb25NYXBwaW5ncyhSZW5kZXJMYXllciogbGF5ZXIsIExheWVyVG9SZWdpb25NYXAm
IGxheWVyVG9SZWdpb25NYXAsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiByZWdpb25Ub0xheWVyTGlz
dE1hcCwgYm9vbCYgbmVlZHNMYXllclVwZGF0ZSkKIHsKICAgICBSZW5kZXJSZWdpb24qIHJlZ2lv
biA9IHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihsYXllcik7CiAgICAgaWYgKCFuZWVkc0xheWVy
VXBkYXRlKSB7Ci0gICAgICAgIEFTU0VSVChtX2xheWVyVG9SZWdpb25NYXApOwogICAgICAgICAv
LyBGaWd1cmUgb3V0IGlmIHdlIG1vdmVkIHRoaXMgbGF5ZXIgZnJvbSBhIHJlZ2lvbiB0byB0aGUg
b3RoZXIuCi0gICAgICAgIFJlbmRlclJlZ2lvbiogcHJldmlvdXNSZWdpb24gPSBtX2xheWVyVG9S
ZWdpb25NYXAtPmdldChsYXllcik7CisgICAgICAgIFJlbmRlclJlZ2lvbiogcHJldmlvdXNSZWdp
b24gPSBjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOwogICAgICAgICBpZiAo
cHJldmlvdXNSZWdpb24gIT0gcmVnaW9uKQogICAgICAgICAgICAgbmVlZHNMYXllclVwZGF0ZSA9
IHRydWU7CiAgICAgfQorCiAgICAgaWYgKCFyZWdpb24pCiAgICAgICAgIHJldHVybjsKKwogICAg
IGxheWVyVG9SZWdpb25NYXAuc2V0KGxheWVyLCByZWdpb24pOworCiAgICAgUmVnaW9uVG9MYXll
ckxpc3RNYXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0gcmVnaW9uVG9MYXllckxpc3RNYXAuZmluZChy
ZWdpb24pOwogICAgIFJlbmRlckxheWVyTGlzdCYgbGlzdCA9IGl0ZXJhdG9yID09IHJlZ2lvblRv
TGF5ZXJMaXN0TWFwLmVuZCgpID8gcmVnaW9uVG9MYXllckxpc3RNYXAuc2V0KHJlZ2lvbiwgUmVu
ZGVyTGF5ZXJMaXN0KCkpLml0ZXJhdG9yLT52YWx1ZSA6IGl0ZXJhdG9yLT52YWx1ZTsKKyAgICBB
U1NFUlQoIWxpc3QuY29udGFpbnMobGF5ZXIpKTsKICAgICBsaXN0LmFwcGVuZChsYXllcik7CiB9
CiAKLWJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCkK
K2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCkK
IHsKICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbWFwIGxheWVycyB0byByZWdpb25zIGZvciBuYW1l
ZCBmbG93IHRocmVhZHMuCiAgICAgLy8gTXVsdGktY29sdW1uIHRocmVhZHMgYXJlIGRpc3BsYXll
ZCBvbiB0b3Agb2YgdGhlIHJlZ2lvbnMgYW5kIGRvIG5vdCByZXF1aXJlCkBAIC0yODgsMzggKzMz
MCwzMCBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5n
cygpCiAgICAgQ3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNhYmxlciBkaXNhYmxlcigmdmlldygp
KTsKIAogICAgIC8vIElmIHRoZSBSZW5kZXJGbG93VGhyZWFkIGhhZCBhIHotaW5kZXggbGF5ZXIg
dXBkYXRlLCB0aGVuIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBjb21wb3NpdGVkIGxheWVycyB0b28u
Ci0gICAgYm9vbCBuZWVkc0xheWVyVXBkYXRlID0gbV9sYXllcnNUb1JlZ2lvbk1hcHBpbmdzRGly
dHkgfHwgIW1fbGF5ZXJUb1JlZ2lvbk1hcC5nZXQoKTsKKyAgICBib29sIG5lZWRzTGF5ZXJVcGRh
dGUgPSBsYXllcigpLT5pc0RpcnR5UmVuZGVyRmxvd1RocmVhZCgpIHx8IG1fbGF5ZXJzVG9SZWdp
b25NYXBwaW5nc0RpcnR5IHx8ICFtX2xheWVyVG9SZWdpb25NYXAuZ2V0KCk7CiAgICAgbGF5ZXIo
KS0+dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKICAgICBMYXllclRvUmVnaW9uTWFwIGxh
eWVyVG9SZWdpb25NYXA7CiAgICAgUmVnaW9uVG9MYXllckxpc3RNYXAgcmVnaW9uVG9MYXllckxp
c3RNYXA7CiAKLSAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSBs
YXllcigpLT5uZWdaT3JkZXJMaXN0KCkpIHsKLSAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVn
Wk9yZGVyTGlzdC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RT
aXplOyArK2kpCi0gICAgICAgICAgICB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihuZWdaT3Jk
ZXJMaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5l
ZWRzTGF5ZXJVcGRhdGUpOwotICAgIH0KLQotICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiog
bm9ybWFsRmxvd0xpc3QgPSBsYXllcigpLT5ub3JtYWxGbG93TGlzdCgpKSB7Ci0gICAgICAgIHNp
emVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKLSAgICAgICAgICAgIHVwZGF0ZVJlZ2lvbkZv
clJlbmRlckxheWVyKG5vcm1hbEZsb3dMaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVn
aW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJVcGRhdGUpOwotICAgIH0KLSAgICAKLSAgICBp
ZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllcigpLT5wb3NaT3Jk
ZXJMaXN0KCkpIHsKLSAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6
ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCi0gICAg
ICAgICAgICB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihwb3NaT3JkZXJMaXN0LT5hdChpKSwg
bGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJVcGRhdGUp
OwotICAgIH0KKyAgICBSZW5kZXJMYXllckxpc3QqIGxpc3RzW10gPSB7IGxheWVyKCktPm5lZ1pP
cmRlckxpc3QoKSwgbGF5ZXIoKS0+bm9ybWFsRmxvd0xpc3QoKSwgbGF5ZXIoKS0+cG9zWk9yZGVy
TGlzdCgpfTsKKyAgICBmb3IgKHNpemVfdCBsaXN0SW5kZXggPSAwOyBsaXN0SW5kZXggPCBzaXpl
b2YobGlzdHMpIC8gc2l6ZW9mKGxpc3RzWzBdKTsgKytsaXN0SW5kZXgpCisgICAgICAgIGlmIChS
ZW5kZXJMYXllckxpc3QqIGxpc3QgPSBsaXN0c1tsaXN0SW5kZXhdKQorICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGlzdC0+c2l6ZSgpOyBpIDwgbGlzdFNpemU7ICsr
aSkKKyAgICAgICAgICAgICAgICB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MobGlzdC0+YXQo
aSksIGxheWVyVG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBk
YXRlKTsKIAogICAgIGlmIChuZWVkc0xheWVyVXBkYXRlKSB7CiAgICAgICAgIGlmICghbV9sYXll
clRvUmVnaW9uTWFwKQogICAgICAgICAgICAgbV9sYXllclRvUmVnaW9uTWFwID0gYWRvcHRQdHIo
bmV3IExheWVyVG9SZWdpb25NYXAoKSk7CiAgICAgICAgIG1fbGF5ZXJUb1JlZ2lvbk1hcC0+c3dh
cChsYXllclRvUmVnaW9uTWFwKTsKIAorICAgICAgICBpZiAoIW1fcmVnaW9uVG9MYXllckxpc3RN
YXApCisgICAgICAgICAgICBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwID0gYWRvcHRQdHIobmV3IFJl
Z2lvblRvTGF5ZXJMaXN0TWFwKCkpOworICAgICAgICBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwLT5z
d2FwKHJlZ2lvblRvTGF5ZXJMaXN0TWFwKTsKKwogICAgICAgICBmb3IgKFJlbmRlclJlZ2lvbkxp
c3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lv
bkxpc3QuZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24g
PSAqaXRlcjsKLSAgICAgICAgICAgIHJlZ2lvbi0+c2V0UmVxdWlyZXNMYXllckZvckNvbXBvc2l0
aW5nKHJlZ2lvblRvTGF5ZXJMaXN0TWFwLmNvbnRhaW5zKHJlZ2lvbikpOworICAgICAgICAgICAg
cmVnaW9uLT5zZXRSZXF1aXJlc0xheWVyRm9yQ29tcG9zaXRpbmcobV9yZWdpb25Ub0xheWVyTGlz
dE1hcC0+Y29udGFpbnMocmVnaW9uKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IDA5MzJlYTguLjJlYjEwMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtNDQs
MTAgKzQ0LDEyIEBAIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsK
IGNsYXNzIFJlbmRlclJlZ2lvbjsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyUmVnaW9uKj4gUmVuZGVyUmVnaW9uTGlzdDsKIHR5
cGVkZWYgVmVjdG9yPFJlbmRlckxheWVyKj4gUmVuZGVyTGF5ZXJMaXN0OwogdHlwZWRlZiBIYXNo
TWFwPFJlbmRlclJlZ2lvbiosIFJlbmRlckxheWVyTGlzdD4gUmVnaW9uVG9MYXllckxpc3RNYXA7
CiB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyTGF5ZXIqLCBSZW5kZXJSZWdpb24qPiBMYXllclRvUmVn
aW9uTWFwOworI2VuZGlmCiAKIC8vIFJlbmRlckZsb3dUaHJlYWQgaXMgdXNlZCB0byBjb2xsZWN0
IGFsbCB0aGUgcmVuZGVyIG9iamVjdHMgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBhCiAvLyBmbG93IHRo
cmVhZC4gSXQgd2lsbCBhbHNvIGhlbHAgaW4gZG9pbmcgdGhlIGxheW91dC4gSG93ZXZlciwgaXQg
d2lsbCBub3QgcmVuZGVyCkBAIC0xMTcsOCArMTE5LDYgQEAgcHVibGljOgogCiAgICAgUmVuZGVy
UmVnaW9uKiByZWdpb25BdEJsb2NrT2Zmc2V0KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQs
IGJvb2wgZXh0ZW5kTGFzdFJlZ2lvbiA9IGZhbHNlLCBSZWdpb25BdXRvR2VuZXJhdGlvblBvbGlj
eSA9IEFsbG93UmVnaW9uQXV0b0dlbmVyYXRpb24pOwogCi0gICAgY29uc3QgUmVuZGVyTGF5ZXJM
aXN0KiBnZXRMYXllckxpc3RGb3JSZWdpb24oUmVuZGVyUmVnaW9uKikgY29uc3Q7Ci0KICAgICBi
b29sIHJlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVn
aW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoOyB9CiAgICAgYm9vbCByZWdpb25zSGF2ZVVuaWZv
cm1Mb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dp
Y2FsSGVpZ2h0OyB9CiAKQEAgLTE4MSwxMiArMTgxLDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyTmVlZHNUd29QaGFzZXNMYXlvdXQoKSB7IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSBmYWxz
ZTsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIFdoZXRoZXIg
YW55IG9mIHRoZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgYm9v
bCBoYXNDb21wb3NpdGluZ1JlZ2lvbkRlc2NlbmRhbnQoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0
TmVlZHNMYXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKSB7IG1fbGF5ZXJzVG9SZWdpb25NYXBw
aW5nc0RpcnR5ID0gdHJ1ZTsgfQotICAgIHZvaWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdz
SWZOZWVkZWQoKQorICAgIHZvaWQgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVk
ZWQoKQogICAgIHsKICAgICAgICAgaWYgKG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KQot
ICAgICAgICAgICAgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICB1
cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsKICAgICB9CisKKyAgICBjb25zdCBSZW5k
ZXJMYXllckxpc3QqIGdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJSZWdpb24qKSBjb25zdDsK
KworICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVy
Kik7IC8vIEJ5IG1lYW5zIG9mIGdldFJlZ2lvblJhbmdlRm9yQm94IG9yIHJlZ2lvbkF0QmxvY2tP
ZmZzZXQuCisgICAgUmVuZGVyUmVnaW9uKiBjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIo
UmVuZGVyTGF5ZXIqKSBjb25zdDsKICNlbmRpZgogCiAgICAgdm9pZCBwdXNoRmxvd1RocmVhZExh
eW91dFN0YXRlKGNvbnN0IFJlbmRlck9iamVjdCopOwpAQCAtMjIyLDkgKzIzMCwxMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgTGF5b3V0UmVjdCBjb21wdXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0IExh
eW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBSZW5kZXJSZWdpb24qIHJl
Z2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopOwotICAgIGJvb2wgdXBkYXRlTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7Ci0gICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXll
cihSZW5kZXJMYXllciosIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYs
IGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpOworICAgIGJvb2wgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lv
bk1hcHBpbmdzKCk7CisKKyAgICAvLyBUcmlnZ2VycyBhIGxheWVycycgdXBkYXRlIGlmIGEgbGF5
ZXIgaGFzIG1vdmVkIGZyb20gYSByZWdpb24gdG8gYW5vdGhlciBzaW5jZSB0aGUgbGFzdCB1cGRh
dGUuCisgICAgdm9pZCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoUmVuZGVyTGF5ZXIqLCBM
YXllclRvUmVnaW9uTWFwJiwgUmVnaW9uVG9MYXllckxpc3RNYXAmLCBib29sJiBuZWVkc0xheWVy
VXBkYXRlKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0
ZUV2ZW50KGJvb2wgdmFsdWUpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0g
dmFsdWU7IH0KQEAgLTMwNCw3ICszMTMsMTEgQEAgcHJvdGVjdGVkOgogICAgIH07CiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gVG8gZWFzaWx5IGZpbmQgdGhlIHJl
Z2lvbiB3aGVyZSBhIGxheWVyIHNob3VsZCBiZSBwYWludGVkLgogICAgIE93blB0cjxMYXllclRv
UmVnaW9uTWFwPiBtX2xheWVyVG9SZWdpb25NYXA7CisKKyAgICAvLyBUbyBlYXNpbHkgZmluZCB0
aGUgbGlzdCBvZiBsYXllcnMgdGhhdCBwYWludCBpbiBhIHJlZ2lvbi4KKyAgICBPd25QdHI8UmVn
aW9uVG9MYXllckxpc3RNYXA+IG1fcmVnaW9uVG9MYXllckxpc3RNYXA7CiAjZW5kaWYKIAogICAg
IC8vIEEgbWFwcyBmcm9tIFJlbmRlckJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHZW9tZXRyeU1hcC5jcHAKaW5kZXggMTg2MmE5NS4uNmJhZTQyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIK
IAorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgpA
QCAtMjUxLDYgKzI1MiwxMiBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoVmlldyhjb25z
dCBSZW5kZXJWaWV3KiB2aWV3LCBjb25zdCBMYXlvdXRTaXplJiBzY3JvbAogICAgIHN0ZXBJbnNl
cnRlZChzdGVwKTsKIH0KIAordm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaFJlbmRlckZsb3dU
aHJlYWQoY29uc3QgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKK3sKKyAgICBtX21hcHBp
bmcuYXBwZW5kKFJlbmRlckdlb21ldHJ5TWFwU3RlcChmbG93VGhyZWFkLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSkpOworICAgIHN0ZXBJbnNlcnRlZChtX21hcHBpbmcubGFzdCgpKTsKK30K
Kwogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cG9wTWFwcGluZ3NUb0FuY2VzdG9yKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yUmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKG1f
bWFwcGluZy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdlb21ldHJ5TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0
cnlNYXAuaAppbmRleCA5MmQ1MjA5Li40NGZiYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJMYXllcjsK
IGNsYXNzIFJlbmRlckxheWVyTW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJWaWV3OwpAQCAtMTEw
LDYgKzExMSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJlbmRlclZpZXcgZ2V0cyBzcGVjaWFsIHRy
ZWF0bWVudCwgYmVjYXVzZSBpdCBhcHBsaWVzIHRoZSBzY3JvbGwgb2Zmc2V0IG9ubHkgZm9yIGVs
ZW1lbnRzIGluc2lkZSBpbiBmaXhlZCBwb3NpdGlvbi4KICAgICB2b2lkIHB1c2hWaWV3KGNvbnN0
IFJlbmRlclZpZXcqLCBjb25zdCBMYXlvdXRTaXplJiBzY3JvbGxPZmZzZXQsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4KiA9IDApOworICAgIHZvaWQgcHVzaFJlbmRlckZsb3dUaHJlYWQoY29u
c3QgUmVuZGVyRmxvd1RocmVhZCopOwogCiBwcml2YXRlOgogICAgIHZvaWQgbWFwVG9Db250YWlu
ZXIoVHJhbnNmb3JtU3RhdGUmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWlu
ZXIgPSAwKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDJkNDI0N2YuLjQyOGMyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtNTUzNSw3ICs1NTM1LDggQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Y2Fs
Y3VsYXRlTGF5ZXJCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIGMKICAg
ICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAgIFJlbmRl
ckxheWVyKiBjdXJMYXllciA9IHBvc1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgaWYg
KGZsYWdzICYgSW5jbHVkZUNvbXBvc2l0ZWREZXNjZW5kYW50cyB8fCAhY3VyTGF5ZXItPmlzQ29t
cG9zaXRlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGlz
IGlnbm9yZWQgd2hlbiB3ZSBjYWxjdWxhdGUgdGhlIGJvdW5kcyBvZiB0aGUgUmVuZGVyVmlldy4K
KyAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBJbmNsdWRlQ29tcG9zaXRlZERlc2NlbmRhbnRzIHx8
ICFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpICYmICFjdXJMYXllci0+aXNPdXRPZkZsb3dSZW5k
ZXJGbG93VGhyZWFkKCkpIHsKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGNoaWxkVW5pb25C
b3VuZHMgPSBjdXJMYXllci0+Y2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgMCwgZGVzY2VuZGFu
dEZsYWdzKTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5kcy51bml0ZShjaGlsZFVuaW9uQm91
bmRzKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
aW5kZXggYzY2YjJmMjIuLjE4ZGFjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCkBAIC03NTcsNiArNzU3LDcgQEAgcHVibGljOgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaXNDb21wb3NpdGVkKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNraW5nICE9IDA7IH0KKyAgICBib29sIGhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50OyB9CiAgICAgYm9vbCBoYXNDb21w
b3NpdGVkTWFzaygpIGNvbnN0OwogICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZygpIGNv
bnN0IHsgcmV0dXJuIG1fYmFja2luZy5nZXQoKTsgfQogICAgIFJlbmRlckxheWVyQmFja2luZyog
ZW5zdXJlQmFja2luZygpOwpAQCAtODIwLDcgKzgyMSwxNSBAQCBwdWJsaWM6CiAgICAgVmlld3Bv
cnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gdmlld3BvcnRDb25zdHJhaW5lZE5vdENv
bXBvc2l0ZWRSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaWV3cG9ydENvbnN0
cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbj4obV92aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9z
aXRlZFJlYXNvbik7IH0KICNlbmRpZgogICAgIAorICAgIGJvb2wgaXNSZW5kZXJGbG93VGhyZWFk
KCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5pc1JlbmRlckZsb3dUaHJlYWQoKTsgfQogICAg
IGJvb2wgaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVy
ZXIoKS5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKTsgfQorICAgIGJvb2wgaXNJbnNpZGVG
bG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5mbG93VGhyZWFkU3RhdGUoKSAh
PSBSZW5kZXJPYmplY3Q6Ok5vdEluc2lkZUZsb3dUaHJlYWQ7IH0KKyAgICBib29sIGlzSW5zaWRl
T3V0T2ZGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5mbG93VGhyZWFkU3Rh
dGUoKSA9PSBSZW5kZXJPYmplY3Q6Okluc2lkZU91dE9mRmxvd1RocmVhZDsgfQorICAgIGJvb2wg
aXNEaXJ0eVJlbmRlckZsb3dUaHJlYWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
UmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICAgICAgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSB8
fCBtX25vcm1hbEZsb3dMaXN0RGlydHk7CisgICAgfQogCiBwcml2YXRlOgogICAgIGVudW0gQ29s
bGVjdExheWVyc0JlaGF2aW9yIHsgU3RvcEF0U3RhY2tpbmdDb250ZXh0cywgU3RvcEF0U3RhY2tp
bmdDb250YWluZXJzIH07CkBAIC0xMDkzLDcgKzExMDIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
dXNlUmVnaW9uQmFzZWRDb2x1bW5zKCkgY29uc3Q7CiAgICAgCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAgICAKLSAgICBib29sIGhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50OyB9CiAgICAgdm9pZCBzZXRI
YXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoYm9vbCBiKSAgeyBtX2hhc0NvbXBvc2l0aW5nRGVzY2Vu
ZGFudCA9IGI7IH0KICAgICAKICAgICBlbnVtIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCAxMGM5ZTQxLi42MzkyNzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNDcsMTAgKzQ3LDEyIEBACiAjaW5jbHVkZSAiS2V5ZnJh
bWVMaXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVz
c1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiIAogI2luY2x1ZGUgIlJl
bmRlcklGcmFtZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAt
NDEyLDYgKzQxNCw5IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9z
aXRlZEJvdW5kcygpIGNvbnN0CiAgICAgaWYgKGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRP
clVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhtX293bmluZ0xheWVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKG1fb3duaW5nTGF5ZXItPmlzSW5zaWRlT3V0T2ZGbG93VGhyZWFk
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02
NDgsNiArNjUzLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5
ZXJHZW9tZXRyeSgpCiAgICAgSW50UmVjdCByZWxhdGl2ZUNvbXBvc2l0aW5nQm91bmRzKGxvY2Fs
Q29tcG9zaXRpbmdCb3VuZHMpOwogICAgIHJlbGF0aXZlQ29tcG9zaXRpbmdCb3VuZHMubW92ZUJ5
KGRlbHRhKTsKIAorICAgIGFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhy
ZWFkKGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbXBBbmNlc3Rvcik7CisKICAgICBJbnRQ
b2ludCBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb247CiAgICAgaWYgKGNvbXBBbmNlc3RvciAm
JiBjb21wQW5jZXN0b3ItPmJhY2tpbmcoKS0+aGFzQ2xpcHBpbmdMYXllcigpKSB7CiAgICAgICAg
IC8vIElmIHRoZSBjb21wb3NpdGluZyBhbmNlc3RvciBoYXMgYSBsYXllciB0byBjbGlwIGNoaWxk
cmVuLCB3ZSBwYXJlbnQgaW4gdGhhdCwgYW5kIHRoZXJlZm9yZQpAQCAtODQ1LDYgKzg1Miw1MiBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkK
ICAgICByZWdpc3RlclNjcm9sbGluZ0xheWVycygpOwogfQogCitzdGF0aWMgUmVuZGVyTGF5ZXIq
IGVuY2xvc2luZ0Zsb3dUaHJlYWRBbmNlc3RvcihSZW5kZXJMYXllciogY3VycikKK3sKKyAgICBm
b3IgKGN1cnIgPSBjdXJyLT5wYXJlbnQoKTsgY3VyciAmJiAhY3Vyci0+aXNSZW5kZXJGbG93VGhy
ZWFkKCk7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoY3Vyci0+aXNTdGFj
a2luZ0NvbnRhaW5lcigpICYmIGN1cnItPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgICAgICAv
LyBXZSBvbmx5IGFkanVzdCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGxldmVsIG9mIGxheWVy
cy4KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBj
dXJyOworfQorCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6YWRqdXN0QW5jZXN0b3JDb21wb3Np
dGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5k
cywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0Cit7CisgICAg
aWYgKCFtX293bmluZ0xheWVyLT5pc0luc2lkZUZsb3dUaHJlYWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgUmVuZGVyTGF5ZXIqIGZsb3dUaHJlYWRMYXllciA9IG1fb3duaW5nTGF5ZXItPmlz
SW5zaWRlT3V0T2ZGbG93VGhyZWFkKCkgPyBtX293bmluZ0xheWVyLT5zdGFja2luZ0NvbnRhaW5l
cigpIDogZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKG1fb3duaW5nTGF5ZXIpOworICAgIGlm
IChmbG93VGhyZWFkTGF5ZXIgJiYgZmxvd1RocmVhZExheWVyLT5pc1JlbmRlckZsb3dUaHJlYWQo
KSkgeworICAgICAgICBSZW5kZXJGbG93VGhyZWFkJiBmbG93VGhyZWFkID0gdG9SZW5kZXJGbG93
VGhyZWFkKGZsb3dUaHJlYWRMYXllci0+cmVuZGVyZXIoKSk7CisgICAgICAgIGlmIChtX293bmlu
Z0xheWVyLT5pc0luc2lkZU91dE9mRmxvd1RocmVhZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUg
UmVuZGVyTmFtZWRGbG93VGhyZWFkIGlzIG5vdCBjb21wb3NpdGVkLCBhcyB3ZSBuZWVkIGl0IHRv
IHBhaW50IHRoZSAKKyAgICAgICAgICAgIC8vIGJhY2tncm91bmQgbGF5ZXIgb2YgdGhlIHJlZ2lv
bnMuIFdlIG5lZWQgdG8gY29tcGVuc2F0ZSBmb3IgdGhhdCBieSBtYW51YWxseQorICAgICAgICAg
ICAgLy8gc3VidHJhY3RpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBmbG93LXRocmVhZC4KKyAgICAg
ICAgICAgIEludFBvaW50IGZsb3dQb3NpdGlvbjsKKyAgICAgICAgICAgIGZsb3dUaHJlYWRMYXll
ci0+Y29udmVydFRvUGl4ZWxTbmFwcGVkTGF5ZXJDb29yZHMoY29tcG9zaXRpbmdBbmNlc3Rvciwg
Zmxvd1Bvc2l0aW9uKTsKKyAgICAgICAgICAgIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMubW92
ZUJ5KGZsb3dQb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb3ZlIHRoZSBhbmNl
c3RvciBwb3NpdGlvbiBhdCB0aGUgdG9wIG9mIHRoZSByZWdpb24gd2hlcmUgdGhlIGNvbXBvc2l0
ZWQgbGF5ZXIgaXMgZ29pbmcgdG8gZGlzcGxheS4KKyAgICAgICAgUmVuZGVyUmVnaW9uKiBwYXJl
bnRSZWdpb24gPSBmbG93VGhyZWFkLmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihtX293
bmluZ0xheWVyKTsKKyAgICAgICAgaWYgKHBhcmVudFJlZ2lvbikgeworICAgICAgICAgICAgSW50
UG9pbnQgZmxvd0RlbHRhOworICAgICAgICAgICAgbV9vd25pbmdMYXllci0+Y29udmVydFRvUGl4
ZWxTbmFwcGVkTGF5ZXJDb29yZHMoZmxvd1RocmVhZExheWVyLCBmbG93RGVsdGEpOworICAgICAg
ICAgICAgcGFyZW50UmVnaW9uLT5hZGp1c3RSZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRp
b25SZWN0KGZsb3dEZWx0YSwgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcyk7CisgICAgICAgICAg
ICBpZiAocGFyZW50UmVnaW9uLT5oYXNMYXllcigpICYmIHBhcmVudFJlZ2lvbi0+bGF5ZXIoKS0+
YmFja2luZygpKSB7CisgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lv
biBwcm9wYWdhdGVzIGl0cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRv
d3MgdG8gbGF5ZXJzIGluc2lkZSBpdC4KKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhl
IGNvbXBvc2l0ZWQgYm91bmRzIG9mIHRoZSBSZW5kZXJSZWdpb24gYXJlIGFscmVhZHkgY2FsY3Vs
YXRlZAorICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpy
ZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUgd2lsbCBvbmx5CisgICAgICAgICAgICAgICAgLy8g
aXRlcmF0ZSBvbiB0aGUgY29udGVudCBvZiB0aGUgcmVnaW9uIGFmdGVyIHRoZSByZWdpb24gaXRz
ZWxmIGlzIGNvbXB1dGVkLgorICAgICAgICAgICAgICAgIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3Vu
ZHMubW92ZUJ5KHJvdW5kZWRJbnRQb2ludChwYXJlbnRSZWdpb24tPmxheWVyKCktPmJhY2tpbmco
KS0+Y29tcG9zaXRlZEJvdW5kcygpLmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBhbmNl
c3RvckNvbXBvc2l0aW5nQm91bmRzLm1vdmUoLXBhcmVudFJlZ2lvbi0+Ym9yZGVyQW5kUGFkZGlu
Z1N0YXJ0KCksIC1wYXJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVEaXJlY3RseUNvbXBvc2l0ZWRDb250ZW50cyhib29sIGlzU2ltcGxlQ29udGFpbmVy
LCBib29sJiBkaWRVcGRhdGVDb250ZW50c1JlY3QpCiB7CiAgICAgaWYgKCFtX293bmluZ0xheWVy
LT5oYXNWaXNpYmxlQ29udGVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oCmluZGV4IDU2ZjE3YzAuLmE3ZjA0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTI3OCw2ICsyNzgsOSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVo
YXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlKTsKIAorICAgIC8vIEhlbHBlciBmdW5j
dGlvbiBmb3IgdXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5LgorICAgIHZvaWQgYWRqdXN0QW5j
ZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21w
b3NpdGluZ0JvdW5kcywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNv
bnN0OworCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJvcGVy
dHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlEIGNz
c1RvR3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDI4YTdh
NGMuLmVlNWUwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCkBAIC00NiwxMCArNDYsMTIgQEAKICNpbmNsdWRlICJOb2RlTGlz
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5o
IgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJGdWxsU2Ny
ZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJSZW5kZXJJ
RnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5k
ZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC05NDYsOCArOTQ4LDEwIEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
UmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgbGF5ZXItPnVwZGF0ZURlc2NlbmRhbnREZXBlbmRl
bnRGbGFncygpOwogICAgIGxheWVyLT51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsKIAotICAg
IGlmIChsYXllci0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgaWYgKGxheWVy
LT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkgeworICAgICAgICBsYXllci0+c2V0SGFz
Q29tcG9zaXRpbmdEZXNjZW5kYW50KHRvUmVuZGVyRmxvd1RocmVhZChsYXllci0+cmVuZGVyZXIo
KSkuaGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkpOwogICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgaWYgKG92ZXJsYXBNYXApCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5
TWFwKCkucHVzaE1hcHBpbmdzVG9BbmNlc3RvcihsYXllciwgYW5jZXN0b3JMYXllcik7CkBAIC0x
MDMwLDYgKzEwMzQsMTQgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KKworICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlclJl
Z2lvbigpKSB7CisgICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBjb2xsZWN0IGxheWVycyBmcm9t
IHRoZSBSZW5kZXJGbG93VGhyZWFkIGludG8gdGhlCisgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXIg
b2YgdGhlIFJlbmRlclJlZ2lvbiwgYnV0IGZpcnN0IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
dGhlCisgICAgICAgIC8vIHJlZ2lvbiBpdHNlbGYgaXMgZ29pbmcgdG8gaGF2ZSBhIGNvbXBvc2l0
ZWQgbGF5ZXIuIFdlIG9ubHkgd2FudCB0byBtYWtlCisgICAgICAgIC8vIHJlZ2lvbnMgY29tcG9z
aXRlZCB3aGVuIHRoZXJlJ3MgYW4gYWN0dWFsIGxheWVyIHRoYXQgd2UgbmVlZCB0byBtb3ZlIHRv
IHRoYXQgcmVnaW9uLgorICAgICAgICBjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVu
dHMoJnRvUmVuZGVyUmVnaW9uKGxheWVyLT5yZW5kZXJlcigpKSwgb3ZlcmxhcE1hcCwgY2hpbGRT
dGF0ZSwgbGF5ZXJzQ2hhbmdlZCwgYW55RGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKKyAgICB9
CiAgICAgCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxh
eWVyLT5ub3JtYWxGbG93TGlzdCgpKSB7CiAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5vcm1h
bEZsb3dMaXN0LT5zaXplKCk7CkBAIC0xMTM5LDYgKzExNTEsMjggQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciog
YW5jZXN0b3IKICAgICAgICAgb3ZlcmxhcE1hcC0+Z2VvbWV0cnlNYXAoKS5wb3BNYXBwaW5nc1Rv
QW5jZXN0b3IoYW5jZXN0b3JMYXllcik7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyUmVnaW9uKiByZWdp
b24sIE92ZXJsYXBNYXAqIG92ZXJsYXBNYXAsIENvbXBvc2l0aW5nU3RhdGUmIGNoaWxkU3RhdGUs
IGJvb2wmIGxheWVyc0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSkK
K3sKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpIHx8ICFyZWdpb24tPmZsb3dUaHJlYWQoKSB8
fCAhcmVnaW9uLT5mbG93VGhyZWFkKCktPmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVn
aW9uLT5mbG93VGhyZWFkKCk7CisgICAgCisgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgIG92
ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucHVzaFJlbmRlckZsb3dUaHJlYWQoZmxvd1RocmVhZCk7
CisKKyAgICBpZiAoY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBsYXllckxpc3QgPSBmbG93VGhyZWFk
LT5nZXRMYXllckxpc3RGb3JSZWdpb24ocmVnaW9uKSkgeworICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgbGlzdFNpemUgPSBsYXllckxpc3QtPnNpemUoKTsgaSA8IGxpc3RTaXplOyArK2kpIHsK
KyAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IGxheWVyTGlzdC0+YXQoaSk7Cisg
ICAgICAgICAgICBBU1NFUlQoZmxvd1RocmVhZC0+cmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKGN1
ckxheWVyKSA9PSByZWdpb24pOworICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKGZsb3dUaHJlYWQtPmxheWVyKCksIGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0
YXRlLCBsYXllcnNDaGFuZ2VkLCBhbnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgIG92ZXJsYXBNYXAtPmdl
b21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0FuY2VzdG9yKHJlZ2lvbik7Cit9CisKIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciogY2hp
bGRMYXllciwgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyKQogewogICAgIEFTU0VSVCghcGFyZW50
TGF5ZXIgfHwgY2hpbGRMYXllci0+YW5jZXN0b3JDb21wb3NpdGluZ0xheWVyKCkgPT0gcGFyZW50
TGF5ZXIpOwpAQCAtMTE4Myw2ICsxMjE3LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJMYXllciogbGF5ZXIsIFZlY3QKICAg
ICAvLyBOb3RlIHRoYXQgd2UgY2FuIG9ubHkgZG8gd29yayBoZXJlIHRoYXQgaXMgaW5kZXBlbmRl
bnQgb2Ygd2hldGhlciB0aGUgZGVzY2VuZGFudCBsYXllcnMKICAgICAvLyBoYXZlIGJlZW4gcHJv
Y2Vzc2VkLiBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoKSB3aWxsIGFscmVhZHkgaGF2
ZSBkb25lIHRoZSByZXBhaW50IGlmIG5lY2Vzc2FyeS4KIAorICAgIC8vIERvIG5vdCBpdGVyYXRl
IHRoZSBSZW5kZXJGbG93VGhyZWFkIGRpcmVjdGx5LiBXZSBhcmUgZ29pbmcgdG8gY29sbGVjdCBj
b21wb3NpdGVkIGxheWVycyBhcyBwYXJ0IG9mIHJlZ2lvbnMuCiAgICAgaWYgKGxheWVyLT5pc091
dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtMTIz
Nyw2ICsxMjcyLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9z
aXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBWZWN0CiAgICAgICAgICAgICBjaGls
ZExpc3QuYXBwZW5kKGxheWVyQmFja2luZy0+Zm9yZWdyb3VuZExheWVyKCkpOwogICAgIH0KIAor
ICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlclJlZ2lvbigpKSB7CisgICAgICAgIFJl
bmRlclJlZ2lvbiYgcmVnaW9uID0gdG9SZW5kZXJSZWdpb24obGF5ZXItPnJlbmRlcmVyKCkpOwor
ICAgICAgICAvLyBOb3RlIHRoYXQgZm9yIHJlZ2lvbnMgd2UgYWx3YXlzIGNvbGxlY3QgbGF5ZXJz
IGFzIGlmCisgICAgICAgIC8vIHRoZSByZWdpb24gd2FzIGEgc3RhY2tpbmcgY29udGV4dC4KKyAg
ICAgICAgcmVidWlsZFJlZ2lvbkNvbXBvc2l0aW5nTGF5ZXJUcmVlKCZyZWdpb24sIGxheWVyQ2hp
bGRyZW4sIGRlcHRoICsgMSk7CisgICAgfQorCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+
KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLT5ub3JtYWxGbG93TGlzdCgpKSB7CiAgICAgICAgIHNp
emVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewpAQCAtMTI4Niw2ICsxMzI4LDI0IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVu
ZGVyTGF5ZXIqIGxheWVyLCBWZWN0CiAgICAgfQogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6cmVidWlsZFJlZ2lvbkNvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlclJlZ2lvbiogcmVn
aW9uLCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExpc3QsIGludCBkZXB0aCkKK3sKKyAg
ICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpIHx8IHJlZ2lvbi0+aXNSZW5kZXJSZWdpb25TZXQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IHJl
Z2lvbi0+Zmxvd1RocmVhZCgpOworICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBtb3ZlIEdyYXBo
aWNzTGF5ZXJzIGZvciBSZWdpb25zIGJhc2VkIG11bHRpLWNvbHVtbnMuCisgICAgQVNTRVJUKGZs
b3dUaHJlYWQtPmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICBpZiAoY29uc3Qg
VmVjdG9yPFJlbmRlckxheWVyKj4qIGxheWVyTGlzdCA9IGZsb3dUaHJlYWQtPmdldExheWVyTGlz
dEZvclJlZ2lvbihyZWdpb24pKSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IGxheWVyTGlz
dC0+c2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
IHsKKyAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IGxheWVyTGlzdC0+YXQoaSk7
CisgICAgICAgICAgICBBU1NFUlQoZmxvd1RocmVhZC0+cmVnaW9uRm9yQ29tcG9zaXRlZExheWVy
KGN1ckxheWVyKSA9PSByZWdpb24pOworICAgICAgICAgICAgcmVidWlsZENvbXBvc2l0aW5nTGF5
ZXJUcmVlKGN1ckxheWVyLCBjaGlsZExpc3QsIGRlcHRoICsgMSk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRDaGFuZ2VMb2Nh
dGlvbihjb25zdCBJbnRQb2ludCYgY29udGVudHNPZmZzZXQpCiB7CiAgICAgaWYgKG1fb3ZlcmZs
b3dDb250cm9sc0hvc3RMYXllcikKQEAgLTE4MDUsOSArMTg2NSw5IEBAIGJvb2wgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIq
IGxheWVyLCBSCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5CZUNvbXBvc2l0ZWQo
Y29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBXZSBkaXNh
YmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGZvciBlbGVtZW50cyBpbiBhIFJlbmRlckZsb3dU
aHJlYWQgYXMgaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgotICAgIC8vIFNlZSBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzg0OTAwIHRvIHJlLWVuYWJsZSBpdC4KLSAgICByZXR1cm4gbV9oYXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nICYmIGxheWVyLT5pc1NlbGZQYWludGluZ0xheWVyKCkgJiYgbGF5ZXIt
PnJlbmRlcmVyKCkuZmxvd1RocmVhZFN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVG
bG93VGhyZWFkOworICAgIC8vIENTUyBSZWdpb25zIGZsb3cgdGhyZWFkcyBkbyBub3QgbmVlZCB0
byBiZSBjb21wb3NpdGVkIGFzIHdlIHVzZSBjb21wb3NpdGVkIFJlbmRlclJlZ2lvbnMKKyAgICAv
LyB0byByZW5kZXIgdGhlIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlckZsb3dUaHJlYWQuCisgICAg
cmV0dXJuIG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyAmJiBsYXllci0+aXNTZWxmUGFpbnRp
bmdMYXllcigpICYmICFsYXllci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7CiB9CiAKIGJvb2wgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc093bkJhY2tpbmdTdG9yZShjb25zdCBSZW5kZXJM
YXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yTGF5ZXIs
IGNvbnN0IEludFJlY3QmIGxheWVyQ29tcG9zaXRlZEJvdW5kc0luQW5jZXN0b3IsIGNvbnN0IElu
dFJlY3QmIGFuY2VzdG9yQ29tcG9zaXRlZEJvdW5kcykgY29uc3QKQEAgLTIxOTAsNyArMjI1MCw3
IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5k
aXJlY3RSZWFzb24oUmVuZGVyT2JqZWN0KiByCiAKICAgICAvLyBXaGVuIGEgbGF5ZXIgaGFzIGNv
bXBvc2l0ZWQgZGVzY2VuZGFudHMsIHNvbWUgZWZmZWN0cywgbGlrZSAyZCB0cmFuc2Zvcm1zLCBm
aWx0ZXJzLCBtYXNrcyBldGMgbXVzdCBiZSBpbXBsZW1lbnRlZAogICAgIC8vIHZpYSBjb21wb3Np
dGluZyBzbyB0aGF0IHRoZXkgYWxzbyBhcHBseSB0byB0aG9zZSBjb21wb3NpdGVkIGRlc2NkZW5k
YW50cy4KLSAgICBpZiAoaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzICYmIChsYXllci0+dHJhbnNm
b3JtKCkgfHwgcmVuZGVyZXItPmNyZWF0ZXNHcm91cCgpIHx8IHJlbmRlcmVyLT5oYXNSZWZsZWN0
aW9uKCkpKSB7CisgICAgaWYgKGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cyAmJiAobGF5ZXItPnRy
YW5zZm9ybSgpIHx8IHJlbmRlcmVyLT5jcmVhdGVzR3JvdXAoKSB8fCByZW5kZXJlci0+aGFzUmVm
bGVjdGlvbigpIHx8IHJlbmRlcmVyLT5pc1JlbmRlclJlZ2lvbigpKSkgewogICAgICAgICByZWFz
b24gPSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0ZvckdyYXBoaWNhbEVmZmVjdDsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDU5NTRlMDkuLjQ2MTk5NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAg
LTMyNiw5ICszMjYsMTUgQEAgcHJpdmF0ZToKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IGxh
eWVyJ3MgY29tcG9zaXRpbmcgY2hhbmdlZAogICAgIHZvaWQgY29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBSZW5kZXJMYXllciosIE92ZXJs
YXBNYXAqLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSYsIGJvb2wmIGxheWVyc0NoYW5nZWQsIGJv
b2wmIGRlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSk7CiAgICAgCisgICAgdm9pZCBjb21wdXRlUmVn
aW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyUmVnaW9uKiwgT3ZlcmxhcE1hcCosIENv
bXBvc2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBhbnlEZXNjZW5kYW50
SGFzM0RUcmFuc2Zvcm0pOworCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwgcGFyZW50
aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFycmF5
IG9mIGNoaWxkIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIuCiAgICAg
dm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqLCBWZWN0b3I8R3Jh
cGhpY3NMYXllcio+JiBjaGlsZEdyYXBoaWNzTGF5ZXJzT2ZFbmNsb3NpbmdMYXllciwgaW50IGRl
cHRoKTsKIAorICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIFJlbmRlckZsb3dUaHJlYWQgdHJlZSwg
cGFyZW50aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFu
IGFycmF5IG9mIGNoaWxkIAorICAgIC8vIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRp
bmcgUmVuZGVyUmVnaW9uIGxheWVyLgorICAgIHZvaWQgcmVidWlsZFJlZ2lvbkNvbXBvc2l0aW5n
TGF5ZXJUcmVlKFJlbmRlclJlZ2lvbiosIFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkTGlz
dCwgaW50IGRlcHRoKTsKKwogICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIHRyZWUsIHVwZGF0aW5n
IGxheWVyIGdlb21ldHJ5IG9ubHkuCiAgICAgdm9pZCB1cGRhdGVMYXllclRyZWVHZW9tZXRyeShS
ZW5kZXJMYXllciosIGludCBkZXB0aCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAppbmRleCA3NzAzODU5Li45YzUyMDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5j
cHAKQEAgLTUxNiw2ICs1MTYsMzYgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sbGVj
dExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiBmcmFnbWVudHMsIGNvbnMKICAgICB9CiB9
CiAKK3ZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93
VGhyZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRSZWN0JiBy
ZWdpb25Cb3VuZHMpCit7CisgICAgTGF5b3V0VW5pdCBsYXllckxvZ2ljYWxUb3AgPSBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gbGF5ZXJPZmZzZXQueSgpIDogbGF5ZXJPZmZzZXQueCgpOwor
ICAgIHVuc2lnbmVkIHN0YXJ0Q29sdW1uID0gY29sdW1uSW5kZXhBdE9mZnNldChsYXllckxvZ2lj
YWxUb3ApOworICAgIAorICAgIExheW91dFVuaXQgY29sR2FwID0gY29sdW1uR2FwKCk7CisgICAg
TGF5b3V0VW5pdCBjb2xMb2dpY2FsV2lkdGggPSBjb21wdXRlZENvbHVtbldpZHRoKCk7CisgICAg
CisgICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvbiA9IGZsb3dUaHJlYWRQb3J0aW9uUmVj
dEF0KHN0YXJ0Q29sdW1uKTsKKyAgICBMYXlvdXRQb2ludCB0cmFuc2xhdGlvbk9mZnNldDsKKwor
ICAgIExheW91dFVuaXQgaW5saW5lT2Zmc2V0ID0gc3RhcnRDb2x1bW4gKiAoY29sTG9naWNhbFdp
ZHRoICsgY29sR2FwKTsKKyAgICBpZiAoIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkKKyAgICAgICAgaW5saW5lT2Zmc2V0ID0gLWlubGluZU9mZnNldDsKKyAgICB0cmFuc2xhdGlv
bk9mZnNldC5zZXRYKGlubGluZU9mZnNldCk7CisgICAgICAgIAorICAgIExheW91dFVuaXQgYmxv
Y2tPZmZzZXQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gLWZsb3dUaHJlYWRQb3J0aW9u
LnkoKSA6IC1mbG93VGhyZWFkUG9ydGlvbi54KCk7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpKQorICAgICAgICBibG9ja09mZnNldCA9
IC1ibG9ja09mZnNldDsKKyAgICB0cmFuc2xhdGlvbk9mZnNldC5zZXRZKGJsb2NrT2Zmc2V0KTsK
KyAgICAKKyAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHRyYW5z
bGF0aW9uT2Zmc2V0ID0gdHJhbnNsYXRpb25PZmZzZXQudHJhbnNwb3NlZFBvaW50KCk7CisKKyAg
ICAvLyBGSVhNRTogVGhlIHRyYW5zbGF0aW9uIG5lZWRzIHRvIGluY2x1ZGUgdGhlIG11bHRpY29s
dW1uIHNldCdzIGNvbnRlbnQgb2Zmc2V0IHdpdGhpbiB0aGUKKyAgICAvLyBtdWx0aWNvbHVtbiBi
bG9jayBhcyB3ZWxsLiBUaGlzIHdvbid0IGJlIGFuIGlzc3VlIHVudGlsIHdlIHN0YXJ0IGNyZWF0
aW5nIG11bHRpcGxlIG11bHRpY29sdW1uIHNldHMuCisgICAgCisgICAgcmVnaW9uQm91bmRzLm1v
dmVCeShyb3VuZGVkSW50UG9pbnQoLXRyYW5zbGF0aW9uT2Zmc2V0KSk7Cit9CisKIGNvbnN0IGNo
YXIqIFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZW5kZXJOYW1lKCkgY29uc3QKIHsgICAgCiAgICAg
cmV0dXJuICJSZW5kZXJNdWx0aUNvbHVtblNldCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCmluZGV4IDJmNDg5OGYuLmJlOTZmZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCkBAIC0x
MjAsNiArMTIwLDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0TGF5ZXJG
cmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmLCBjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kaW5n
Qm94LCBjb25zdCBMYXlvdXRSZWN0JiBkaXJ0eVJlY3QpIE9WRVJSSURFOwogCisgICAgdmlydHVh
bCB2b2lkIGFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoY29uc3Qg
SW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdpb25Cb3VuZHMpIE9WRVJSSURFOwor
CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAgICAgCiAgICAg
dm9pZCBwYWludENvbHVtblJ1bGVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4
IDljNjM3Y2EuLmE0ZjU0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uY3BwCkBAIC03MjUsMTUgKzcyNSwyNSBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6c2V0UmVxdWly
ZXNMYXllckZvckNvbXBvc2l0aW5nKGJvb2wgcmVxdWlyZXNMYXllckZvckNvbXBvc2l0aQogICAg
IC8vIGJlZW4gbGFpZCBvdXQsIGFmdGVyIHRoZSBmbG93IHRocmVhZCBkZWNpZGVzIHRoZXJlIGFy
ZSAKICAgICAvLyBjb21wb3NpdGVkIGxheWVycyB0aGF0IHdpbGwgZGlzcGxheSBpbiB0aGlzIHJl
Z2lvbi4KICAgICBBU1NFUlQoIW5lZWRzTGF5b3V0KCkpOworCiAgICAgaWYgKG1fcmVxdWlyZXNM
YXllckZvckNvbXBvc2l0aW5nID09IHJlcXVpcmVzTGF5ZXJGb3JDb21wb3NpdGluZykKICAgICAg
ICAgcmV0dXJuOwogICAgIAotICAgIGJvb2wgcmVxdWlyZWRMYXllciA9IHJlcXVpcmVzTGF5ZXIo
KTsKKyAgICBib29sIHJlcXVpcmVkTGF5ZXJCZWZvcmUgPSByZXF1aXJlc0xheWVyKCk7CiAgICAg
bV9yZXF1aXJlc0xheWVyRm9yQ29tcG9zaXRpbmcgPSByZXF1aXJlc0xheWVyRm9yQ29tcG9zaXRp
bmc7CiAKLSAgICBpZiAocmVxdWlyZWRMYXllciAhPSByZXF1aXJlc0xheWVyKCkpCisgICAgaWYg
KHJlcXVpcmVkTGF5ZXJCZWZvcmUgIT0gcmVxdWlyZXNMYXllcigpKQogICAgICAgICB1cGRhdGVM
YXllcklmTmVlZGVkKCk7CiB9CisKK3ZvaWQgUmVuZGVyUmVnaW9uOjphZGp1c3RSZWdpb25Cb3Vu
ZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IEludFBvaW50JiBsYXllck9mZnNldCwg
SW50UmVjdCYgcmVnaW9uQm91bmRzKQoreworICAgIExheW91dFJlY3QgZmxpcHBlZEZsb3dUaHJl
YWRQb3J0aW9uUmVjdCA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOworICAgIGZsb3dUaHJlYWQo
KS0+ZmxpcEZvcldyaXRpbmdNb2RlKGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QpOworICAg
IHJlZ2lvbkJvdW5kcy5tb3ZlQnkocm91bmRlZEludFBvaW50KGZsaXBwZWRGbG93VGhyZWFkUG9y
dGlvblJlY3QubG9jYXRpb24oKSkpOworCisgICAgVU5VU0VEX1BBUkFNKGxheWVyT2Zmc2V0KTsK
K30KICNlbmRpZgogCiBSZW5kZXJPdmVyZmxvdyogUmVuZGVyUmVnaW9uOjplbnN1cmVPdmVyZmxv
d0ZvckJveChjb25zdCBSZW5kZXJCb3gqIGJveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaAppbmRleCBmNmMxMzI4Li44ODJjODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xNDIsNiArMTQyLDggQEAgcHVibGljOgogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIHNldFJlcXVpcmVzTGF5ZXJGb3JDb21w
b3NpdGluZyhib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWlyZXNMYXllckZvckNvbXBvc2l0aW5nIHx8IFJlbmRlckJsb2NrOjpyZXF1
aXJlc0xheWVyKCk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RSZWdpb25Cb3VuZHNGcm9t
Rmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IEludFBvaW50JiBsYXllck9mZnNldCwgSW50UmVj
dCYgcmVnaW9uQm91bmRzKTsgLy8gbGF5ZXJPZmZzZXQgaXMgbmVlZGVkIGZvciBtdWx0aS1jb2x1
bW4uCiAjZW5kaWYKIAogICAgIHZvaWQgYWRkTGF5b3V0T3ZlcmZsb3dGb3JCb3goY29uc3QgUmVu
ZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpOwpAQCAtMjUyLDggKzI1NCwyMSBAQCBpbmxpbmUg
Y29uc3QgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2JqZWN0
KTsKIH0KIAoraW5saW5lIFJlbmRlclJlZ2lvbiYgdG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0
JiBvYmplY3QpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0
LmlzUmVuZGVyUmVnaW9uKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJSZWdpb24m
PihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3QgUmVuZGVyUmVnaW9uJiB0b1JlbmRlclJlZ2lv
bihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJSZWdpb24oKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclJlZ2lvbiY+KG9iamVjdCk7Cit9CisKIC8vIFRoaXMgd2lsbCBj
YXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KIHZvaWQgdG9SZW5kZXJSZWdp
b24oY29uc3QgUmVuZGVyUmVnaW9uKik7Cit2b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRl
clJlZ2lvbiYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb25TZXQuaAppbmRleCBhMDk2M2ZiLi4wNWU4MjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oCkBAIC02MCw2ICs2MCw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvblNldCgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xh
eWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRl
eCAzYTE1ZWFjLi5hMTBjYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuY3BwCkBAIC04MDIsMTQgKzgwMiwxOCBAQCBzdGF0aWMgdm9pZCB3cml0ZUxh
eWVycyhUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVy
TGF5ZQogICAgICAgICAgICAgICAgICsrbGF5ZXJDb3VudDsKICAgICAgICAgaWYgKGxheWVyQ291
bnQpIHsKICAgICAgICAgICAgIGludCBjdXJySW5kZW50ID0gaW5kZW50OwotICAgICAgICAgICAg
aWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xheWVyTmVzdGluZykgewotICAgICAgICAg
ICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwotICAgICAgICAgICAgICAgIHRzIDw8ICIg
cG9zaXRpdmUgei1vcmRlciBsaXN0KCIgPDwgbGF5ZXJDb3VudCA8PCAiKVxuIjsKLSAgICAgICAg
ICAgICAgICArK2N1cnJJbmRlbnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCi0g
ICAgICAgICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIsIHBvc0xpc3QtPmF0
KGkpLCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwgYmVoYXZpb3IpOworICAgICAgICAgICAg
Ly8gV2Ugb25seSBwcmludCB0aGUgaGVhZGVyIGlmIHRoZXJlJ3MgYXQgbGlzdCBhIG5vbi1SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQgcGFydCBvZiB0aGUgbGlzdC4KKyAgICAgICAgICAgIGlmICghcG9z
TGlzdC0+c2l6ZSgpIHx8ICFwb3NMaXN0LT5hdCgwKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhy
ZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYmVoYXZpb3IgJiBSZW5kZXJBc1RleHRTaG93
TGF5ZXJOZXN0aW5nKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRl
bnQpOworICAgICAgICAgICAgICAgICAgICB0cyA8PCAiIHBvc2l0aXZlIHotb3JkZXIgbGlzdCgi
IDw8IHBvc0xpc3QtPnNpemUoKSA8PCAiKVxuIjsKKyAgICAgICAgICAgICAgICAgICAgKytjdXJy
SW5kZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIERvIG5vdCBwcmludCBuYW1lZCBmbG93cyB0d2ljZS4KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICB3cml0ZUxheWVycyh0cywgcm9vdExheWVyLCBwb3NMaXN0LT5h
dChpKSwgcGFpbnREaXJ0eVJlY3QsIGN1cnJJbmRlbnQsIGJlaGF2aW9yKTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214579</attachid>
            <date>2013-10-18 09:19:23 -0700</date>
            <delta_ts>2013-10-18 09:46:36 -0700</delta_ts>
            <desc>patch that fixes the failing test</desc>
            <filename>patch120457CollectLayersAnonymous.diff</filename>
            <type>text/plain</type>
            <size>104357</size>
            <attacher name="Mihai Maerean">mmaerean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZjUyN2ZkLi45N2Y1Y2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTMtMTAt
MTggIE1paGFpIE1hZXJlYW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zv
cm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zv
cm1lZC1jaGlsZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lv
bi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGlu
Zy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVh
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Jl
Z2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12
aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5z
aWRlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Ry
YW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29t
cG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVs
dGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0
bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50
aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0xMC0xOCAgSmlud29vIFNvbmcgIDxqaW53b283LnNv
bmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwgZ2FyZGVuaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0t
aW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVn
aW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTc3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVn
aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVy
cyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdp
b25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1m
b250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtp
dC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkuY29u
dGVudCB7CisJCQl9CisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVa
KDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24q
LworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0PgorCQkJd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoICJsb2FkIiwgZnVuY3Rpb24gKCkgeworCQkJCXZhciBkaXYgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIjdHJhbnNmb3JtZWQiKTsKKwkJCQlmb3IodmFyIGkgPSAwOyBpIDwgMTA7ICsraSAp
IHsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJ0cmFuc2Zvcm1lZCBjb250ZW50IjsKKwkJCQkJZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAiY29udGVudCI7CisJ
CQkJCWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJCX0KKwkJCX0sIGZhbHNlKTsKKwkJPC9z
Y3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9
InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBp
ZD0idHJhbnNmb3JtZWQiIGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBj
b250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250
ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCTxkaXY+VGVzdCBQQVNT
RVMgaWYgaXQgZG9lc24ndCBjcmFzaCBvciBhc3NlcnQ8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMWUzZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2NyYXNoLXRyYW5z
Zm9ybS1pbnNpZGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhl
IGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRo
ZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdl
YmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJ
CQkuY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86dGhlRmxvdzsKKwkJCX0KKwkJCS5y
ZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOnRoZUZsb3c7CisJCQl9CisJCTwvc3R5bGU+
CisJCTxzY3JpcHQ+CisJCQl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggImxvYWQiLCBmdW5jdGlv
biAoKSB7CisJCQkJdmFyIGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0cmFuc2Zvcm1l
ZCIpOworCQkJCWZvcih2YXIgaSA9IDA7IGkgPCAxMDsgKytpICkgeworCQkJCQlkaXYuY2xhc3NO
YW1lID0gInRyYW5zZm9ybWVkIGNvbnRlbnQiOworCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CisJCQkJfQorCQkJfSwgZmFsc2UpOworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxkaXYgaWQ9InRyYW5zZm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVu
dCI+dHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xh
c3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRp
diBjbGFzcz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBj
bGFzcz0icmVnaW9uIj48L2Rpdj4KKwkJPGRpdj5UZXN0IFBBU1NFUyBpZiBpdCBkb2Vzbid0IGNy
YXNoIG9yIGFzc2VydDwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zs
b2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zvcm1l
ZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjRmYzk3NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDU3IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4K
KwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsK
KwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJfQorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS5y
ZWdpb24geworCQkJCWRpc3BsYXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7CisJ
CQkJd2lkdGg6IDIxMHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogI2VlZTsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBk
aXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJfQorCQkJLnRleHQg
eworCQkJCXdpZHRoOiA2MDBweDsKKwkJCX0KKwkJCSogeworCQkJCWJvcmRlcjpzb2xpZCAxcHgg
Izg4ODsKKwkJCQlwYWRkaW5nOiAycHg7CisJCQkJbWFyZ2luOiAzcHg7CisJCQl9CisJCTwvc3R5
bGU+CisJCTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtdGVzdGluZy5qcyI+PC9zY3Jp
cHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4K
KworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCQkJ
ZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCQl0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0KKworCQkJd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2
aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlkZW8sICcuLi8uLi9tZWRpYS9jb250ZW50L2Nv
dW50aW5nJywgbnVsbCwgdGVzdERvbmUpOworCQkJfTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFkPgor
CTxib2R5PgorCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij4KKwkJCUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBh
bWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBNb2xsaXRpYSwgY3VwaWRpdGF0ZSwg
cG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3JydXB0aSBzdXNjaXBpdCB0ZW1wb3Jh
IGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1dGEgcmVwZWxsYXQgcGVyc3BpY2lh
dGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFnbmkgYSB2b2x1cHRhcyBtYXhpbWUg
b2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIAorCQkJPGRpdiBjbGFzcz0icmVnaW9uIj4K
KwkJCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5Mb25nIHRleHQgaW5zaWRlIHRoZSByZWdpb248L2Rp
dj4KKwkJCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiIGhlaWdodD0iMTAwIiB3
aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJCQk8ZGl2IGNsYXNzPSJj
b250ZW50IHRyYW5zZm9ybWVkIj5Mb25nIHRleHQgaW5zaWRlIHRoZSByZWdpb248L2Rpdj4KKwkJ
CTwvZGl2PgorCQkJIEV0LCBhZCBzaXQgcHJhZXNlbnRpdW0gcmVjdXNhbmRhZSBvbW5pcyByZWlj
aWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJvIHJlcHJlaGVuZGVyaXQgZW5pbSBt
aW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVnaWF0IGl1cmUgc29sdXRhIG1pbmlt
YSBzdXNjaXBpdC48L2Rpdj4KKwkJPGRpdiBjbGFzcz0idGV4dCI+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0
YXRlLCBwb3JybywgZGlnbmlzc2ltb3MgZnVnYSBpbXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRl
bXBvcmEgZWFydW0gb2RpdCBhc3BlcmlvcmVzIHF1aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJz
cGljaWF0aXMgaXN0ZSBldCB2b2x1cHRhdGVtIG1vbGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1h
eGltZSBvZmZpY2lpcyBpdXN0byBkb2xvciB1dCBkaWN0YS4gRXQsIGFkIHNpdCBwcmFlc2VudGl1
bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNpZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50aXVtIHZl
cm8gcmVwcmVoZW5kZXJpdCBlbmltIG1pbnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1heGltZSBm
dWdpYXQgaXVyZSBzb2x1dGEgbWluaW1hIHN1c2NpcGl0LjwvZGl2PgorCTwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0
aC10cmFuc2Zvcm1lZC1jaGlsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk4NjFlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4KKwkJPHN0
eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0K
KworCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiB0aGVGbG93OworCQkJfQor
CQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSBy
b3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9t
OiB0aGVGbG93OworCQkJCWRpc3BsYXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7
CisJCQkJd2lkdGg6IDIxMHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjogI2VlZTsKKwkJCX0KKwkJCS50ZXh0IHsKKwkJCQl3aWR0aDogNjAwcHg7CisJCQl9CisJ
CQkqIHsKKwkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJ
CW1hcmdpbjogM3B4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVk
aWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9
CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZp
ZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJ
CX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0idGV4dCI+
CisJCQlMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcg
ZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdhIGltcGVk
aXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMgcXVpYSBu
YW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0gbW9sZXN0
aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0IGRpY3Rh
LiAKKwkJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCQlFdCwgYWQgc2l0IHByYWVzZW50
aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0g
dmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMgcGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1l
IGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3VzY2lwaXQuCisJCTwvZGl2PgorCQk8ZGl2IGNs
YXNzPSJ0ZXh0Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
aWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdh
IGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMg
cXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0g
bW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0
IGRpY3RhLiBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRp
cyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMg
cGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3Vz
Y2lwaXQuPC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPkxvbmcgdGV4dCBpbnNpZGUgdGhl
IHJlZ2lvbjwvZGl2PgorCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiIGhlaWdo
dD0iMTAwIiB3aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJPGRpdiBj
bGFzcz0iY29udGVudCB0cmFuc2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9k
aXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9u
ZS1yZWdpb24tdG8tYW5vdGhlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdhZTQxZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1m
cm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAK
KzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUg
bGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhl
IHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Vi
a2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkuY29udGVudCB7CisJCQkJd2lk
dGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVs
bG93OworCQkJfQorCisJCQlib2R5IC5yZWdpb246bnRoLWNoaWxkKDIpIC5jb250ZW50IHsKKwkJ
CQltYXJnaW4tdG9wOiAwcHg7IC8qbWFyZ2lucyBhcmUgY29sbGFwc2VkIHdoZW4gZnJhZ21lbnRl
ZCovCisJCQl9CisKKwkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIHsKKwkJCQloZWlnaHQ6
IDIyNXB4OworCQkJfQorCisJCQkjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJ
CS13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBv
c2l0ZWQqLworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dy
b3VuZC1jb2xvcjogTGltZTsKKwkJCX0KKworCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06dHJhbnNsYXRlWigxcHgpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBs
aWtlIHRoZSByZWdpb24qLworCQkJCWhlaWdodDogMjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFw
eCAjODg4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0
IDEuCisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9IndpbGxCZUFkZGVkVG9U
aGVGbG93IiBjbGFzcz0iY29udGVudCBtb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIj5nb2VzIGlu
IHRoZSAxc3QgcmVnaW9uLjwvZGl2PgorCQk8L2Rpdj4KKworCQlzb21lIHRleHQuCisKKwkJPGRp
diBjbGFzcz0icmVnaW9uIj4KKwkJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4
dCAyLgorCQkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQkJ
c29tZSB0ZXh0IDMuCisJCQkJPC9kaXY+CisJCQkJc29tZSB0ZXh0IDQuCisJCQkJPGRpdj5zb21l
IHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRl
eHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQk8L2Rpdj4KKwkJPC9kaXY+
CisKKwkJc29tZSB0ZXh0IDUuCisKKwkJPHA+SWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBm
cm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJz
IHJlYnVpbGQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSBy
aWdodCBsYXllcnMuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUt
bGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNmI0ODAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJvbS1v
bmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKKwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRv
OiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tn
cm91bmQtY29sb3I6IFllbGxvdzsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21w
b3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOworCQkJCXdp
ZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGlt
ZTsKKwkJCX0KKworCQkJLm1vdmVzVGhlTGF5ZXJUb05leHRSZWdpb24geworCQkJCWhlaWdodDog
MjI1cHg7CisJCQl9CisKKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93
OworCQkJCWhlaWdodDogMjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJfQor
CQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBj
bGFzcz0iY29udGVudCI+Z29lcyBpbiB0aGUgMXN0IHJlZ2lvbi48L2Rpdj4KKworCQk8ZGl2IGNs
YXNzPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCXNvbWUgdGV4dCAzLgorCQkJPC9kaXY+CisJCQlzb21l
IHRleHQgNC4KKwkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJPGRpdj5zb21lIHRleHQuPC9k
aXY+CisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KKwkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2Pgor
CQk8L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMSI+PC9kaXY+CisKKwkJc29t
ZSB0ZXh0LgorCisJCTxkaXYgY2xhc3M9InJlZ2lvbiIgaWQ9InIyIj48L2Rpdj4KKwkJc29tZSB0
ZXh0IDUuCisKKwkJPHA+SWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdp
b24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgdG8g
bWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMu
PC9wPgorCisJCTxzY3JpcHQ+CisJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZG8gdGhl
IGxheW91dC4KKwkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkgLmNvbnRlbnQ6Zmlyc3Qt
Y2hpbGQiKS5jbGFzc05hbWUgPSAiY29udGVudCBtb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIjsK
KwkJPC9zY3JpcHQ+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3Jk
ZXItcGFkZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQzOTBmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEy
MDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5
bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQor
CisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJ
CQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVw
eDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJI3JlZ2lv
biB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owor
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+
CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBp
ZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCQlzb21lIHRleHQgMy4KKwkJCQk8L2Rpdj4KKwkJCQlz
b21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1h
a2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3Ms
IG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1i
b3JkZXItcGFkZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5n
LWZvci12aWRlby1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3Mzk5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3Itdmlk
ZW8tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRp
dGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRo
cmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRs
ZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9u
ZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQorCisJCQkjY29udGVudCB7
CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlw
YWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJ
CQl9CisKKwkJCSNyZWdpb24geworCQkJCXdpZHRoOiA5MCU7CisJCQkJYm9yZGVyOiBkb3VibGUg
M3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxp
bmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJ
bWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNy
Yz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25l
KCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIg
dmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlz
ZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRl
c3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0
ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlz
b21lIHRleHQgMi4KKwkJCQk8dmlkZW8gaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRl
byIgY29udHJvbHM+PC92aWRlbz4KKwkJCQlzb21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rp
dj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFn
YXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZp
ZGVvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8u
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1i
b3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWZvci12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjBhZjEyODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXIt
cGFkZGluZy1mb3ItdmlkZW8uaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKwk8aGVhZD4K
KwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBm
bG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMu
PC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGlu
Zzogbm9uZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQorCisJCQkjY29u
dGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJd2lkdGg6IDE1MHB4Owor
CQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1
cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNyZWdpb24gewor
CQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCXdpZHRoOiA5MCU7CisJCQkJYm9yZGVy
OiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4Owor
CQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5
cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCQk8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8
c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9u
IHRlc3REb25lKCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsK
KwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVsw
XTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycs
IG51bGwsIHRlc3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4K
KwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIuCisJ
CQk8dmlkZW8gaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92
aWRlbz4KKwkJCXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rp
dj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFn
YXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZp
ZGVvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ct
Ym9yZGVyLXBhZGRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
OGMzM2M4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9u
cy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbApAQCAtMCww
ICsxLDUxIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVn
aW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVk
IHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7
CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQg
eworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQlo
ZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5n
OiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisK
KwkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBw
eDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlw
YWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJ
CQl9CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJv
eC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3Jl
ZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91
YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46
IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5Pgor
CQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJ
CTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQlzb21lIHRleHQg
My4KKwkJCTwvZGl2PgorCQkJc29tZSB0ZXh0IDQuCisJCTwvZGl2PgorCQk8ZGl2IGlkPSJyZWdp
b24iPjwvZGl2PgorCQlzb21lIHRleHQgNS4KKwkJPHA+TWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lv
biBwcm9wYWdhdGVzIGl0cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRv
d3MgdG8gbGF5ZXJzIGluc2lkZSBpdC48L3A+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
Z2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5v
dGhlci1mbG93dGhyZWFkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2Q2NTBlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEy
MDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5
bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQor
CisJCQkuY29udGVudCB7CisJCQkJd2lkdGg6IDI1MHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJ
CQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVw
eDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtNjVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJI3JlZ2lv
biB7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1
cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiAyN3B4
IDE4cHggMjlweCAyMHB4OworCQkJfQorCisJCQkjb3V0dGVyUmVnaW9uIHsKKwkJCQlib3JkZXI6
IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBh
ZGRpbmc6IDdweCA4cHggOXB4IDEwcHg7CisJCQkJbWFyZ2luOiA4cHggOXB4IDEwcHggMTFweDsK
KwkJCX0KKworCQkJLmZvcmNlZFN0YWNraW5nQ29udGV4dCB7CisJCQkJcG9zaXRpb246IHJlbGF0
aXZlOworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJCS5ib3hTaGFkb3cgeworCQkJCWJveC1z
aGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJvdXR0ZXJSZWdpb24iIGNsYXNzPSJm
b3JjZWRTdGFja2luZ0NvbnRleHQgYm94U2hhZG93Ij4KKwkJCTxkaXYgY2xhc3M9Im91dHRlckZs
b3cgY29udGVudCBib3hTaGFkb3ciPjwvZGl2PgorCQkJPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0i
Zm9yY2VkU3RhY2tpbmdDb250ZXh0IGJveFNoYWRvdyI+CisJCQkJPGRpdiBjbGFzcz0iY29udGVu
dCI+CisJCQkJCXNvbWUgdGV4dCAyLgorCQkJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0Jl
Q29tcG9zaXRlZCIgY2xhc3M9ImJveFNoYWRvdyI+CisJCQkJCQlzb21lIHRleHQgMy4KKwkJCQkJ
PC9kaXY+CisJCQkJCXNvbWUgdGV4dCA0LgorCQkJCTwvZGl2PgorCQkJPC9kaXY+CisJCQk8ZGl2
IGNsYXNzPSJjb250ZW50IGJveFNoYWRvdyI+PC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQg
NS4KKwkJPHA+UmVuZGVyUmVnaW9ucyBtYXkgYmUgY29tcG9zaXRlZCBSZW5kZXJMYXllcnMgaW5z
aWRlIGFub3RoZXIgZmxvdyB0aHJlYWQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxv
d3RocmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMDU4NTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3JlZ2lv
bi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbApAQCAtMCwwICsxLDg2IEBACis8
aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxh
eWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSBy
ZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtp
dC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJLm91dHRlckZsb3cgeworCQkJCS13
ZWJraXQtZmxvdy1pbnRvOiBvdXR0ZXJGbG93OworCQkJfQorCisJCQkuaW5uZXJGbG93IHsKKwkJ
CQktd2Via2l0LWZsb3ctaW50bzogaW5uZXJGbG93OworCQkJfQorCisJCQkuY29udGVudCB7CisJ
CQkJd2lkdGg6IDI1MHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNw
eCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVk
IHsKKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjog
NXB4IDZweCA3cHggOHB4OworCQkJfQorCisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC02NXB4KTsKKwkJCX0KKwor
CQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZyb206IGlubmVyRmxvdzsKKwkJCQlib3Jk
ZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDI3cHggMThweCAyOXB4IDIw
cHg7CisJCQl9CisKKwkJCSNvdXR0ZXJSZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBv
dXR0ZXJGbG93OworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5lOiBk
b3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogN3B4IDhweCA5cHggMTBweDsKKwkJCQltYXJn
aW46IDhweCA5cHggMTBweCAxMXB4OworCQkJfQorCisJCQkuYm94U2hhZG93IHsKKwkJCQlib3gt
c2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgor
CTxib2R5PgorCQlzb21lIHRleHQgMS4KKworCQk8ZGl2IGlkPSJvdXR0ZXJSZWdpb24iIGNsYXNz
PSJib3hTaGFkb3ciPjwvZGl2PgorCisJCTxkaXYgY2xhc3M9Im91dHRlckZsb3cgY29udGVudCBi
b3hTaGFkb3ciPjwvZGl2PgorCisJCTxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9Im91dHRlckZsb3cg
Ym94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJpbm5lckZsb3cgY29udGVudCI+CisJ
CQlzb21lIHRleHQgMi4KKwkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVk
IiBjbGFzcz0iYm94U2hhZG93Ij4KKwkJCQlzb21lIHRleHQgMy4KKwkJCTwvZGl2PgorCQkJc29t
ZSB0ZXh0IDQuCisJCTwvZGl2PgorCisJCTxkaXYgY2xhc3M9Im91dHRlckZsb3cgY29udGVudCBi
b3hTaGFkb3ciPjwvZGl2PgorCisJCXNvbWUgdGV4dCA1LgorCisJCTxwPlJlbmRlclJlZ2lvbnMg
bWF5IGJlIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJzIGluc2lkZSBhbm90aGVyIGZsb3cgdGhyZWFk
LjwvcD4KKworCQk8c2NyaXB0PgorCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQlkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCIjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQiKS5jbGFz
c05hbWUgKz0gIiB0cmFuc2Zvcm1lZCI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWlu
c2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lv
bnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZWVjNTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5z
Zm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90
aXRsZT4KKwkJPHN0eWxlPgorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS50cmFuc3BhcmVudCB7
CisJCQkJb3BhY2l0eTogMC41OworCQkJfQorCQkJLnBvc2l0aW9uZWQgeworCQkJCXBvc2l0aW9u
OiByZWxhdGl2ZTsKKwkJCX0KKwkJCS5jb250ZW50IHsKKwkJCQl3aGl0ZS1zcGFjZTogbm93cmFw
OworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJd2lkdGg6MjAwcHg7CisJCQkJYm9yZGVyLWxlZnQt
d2lkdGg6IDVweDsKKwkJCQlib3JkZXItdG9wLXdpZHRoOiAxZW07CisJCQkJcGFkZGluZy1sZWZ0
OiA0JTsKKwkJCQlwYWRkaW5nLXRvcDogM3B0OworCQkJCW1hcmdpbjogMjBweDsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwg
anVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDog
MTsgLypTdGFja2luZyBDb250ZXh0LCBqdXN0IGxpa2UgdGhlIHJlZ2lvbiovCisJCQl9CisJCQkq
IHsKKwkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJCW1h
cmdpbjogM3B4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEv
bWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisK
KwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVv
LCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJCX07
CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4K
KwkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InRyYW5zcGFyZW50IGNvbnRlbnQiPnRyYW5zcGFyZW50IGNv
bnRlbnQ8L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InBvc2l0aW9uZWQgY29udGVudCI+cG9zaXRpb25l
ZCBjb250ZW50PC9kaXY+CisJCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQiIGhlaWdodD0iMTUwIiB3
aWR0aD0iMjEwIiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQk8ZGl2IGNsYXNzPSJj
b250ZW50Ij5ub3QgdHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25l
ZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGE5ODc1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJh
bnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1
NiBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0bGU+CisJCTxzdHlsZT4K
KwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykg
cm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkudHJhbnNwYXJlbnQgeworCQkJCW9wYWNpdHk6IDAu
NTsKKwkJCX0KKwkJCS5wb3NpdGlvbmVkIHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9
CisJCQkuY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86dGhlRmxvdzsKKwkJCQl3aGl0
ZS1zcGFjZTogbm93cmFwOworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZy
b206dGhlRmxvdzsKKwkJCQl3aWR0aDoyMDBweDsKKwkJCQlib3JkZXItbGVmdC13aWR0aDogNXB4
OworCQkJCWJvcmRlci10b3Atd2lkdGg6IDFlbTsKKwkJCQlwYWRkaW5nLWxlZnQ6IDQlOworCQkJ
CXBhZGRpbmctdG9wOiAzcHQ7CisJCQkJbWFyZ2luOiAyMHB4OworCQkJfQorCQkJKiB7CisJCQkJ
Ym9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsKKwkJCQltYXJnaW46IDNw
eDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10
ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZp
bGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRl
c3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4u
L21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3Nj
cmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRl
bnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0idHJhbnNwYXJlbnQg
Y29udGVudCI+dHJhbnNwYXJlbnQgY29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJwb3NpdGlv
bmVkIGNvbnRlbnQiPnBvc2l0aW9uZWQgY29udGVudDwvZGl2PgorCQk8dmlkZW8gY2xhc3M9ImNv
bnRlbnQiIGhlaWdodD0iMTUwIiB3aWR0aD0iMjEwIiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlk
ZW8+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+
CisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxh
eWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMmViYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zv
cm1lZC1sYXllci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorCTxoZWFk
PgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhl
IGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVy
cy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3Ro
aW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJ
CWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRp
bmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0K
KworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJLmlubmVy
IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBDeWFuOworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJ
CQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOyAvKnNvIHRoZSBkaXYgaXMgY29t
cG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJCWJveC1zaGFkb3c6IDJweCAycHgg
MTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdp
ZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7
CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJ
PGRpdiBpZD0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAy
LgorCQkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIj4KKwkJCQkJc29tZSB0ZXh0IDMuCisJCQkJ
CTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGlubmVyIj4KKwkJCQkJCXNvbWUgdGV4dCA0LgorCQkJ
CQk8L2Rpdj4KKwkJCQkJc29tZSB0ZXh0IDUuCisJCQkJPC9kaXY+CisJCQkJc29tZSB0ZXh0IDYu
CisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJCXNvbWUgdGV4dCA3LgorCQk8cD5SZW5kZXJpbmcgYSB0
cmFuc2Zvcm1lZCBsYXllciBpbnNpZGUgYW5vdGhlciB0cmFuc2Zvcm1lZCBsYXllci48L3A+CisJ
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRl
LXRyYW5zZm9ybWVkLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNTg3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10
cmFuc2Zvcm1lZC1sYXllci5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorCTxoZWFkPgor
CQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZs
b3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48
L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5n
OiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZs
b3c7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3Vu
ZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJn
aW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJ
d2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDogNDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBM
aW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHgg
N3B4IDhweDsKKwkJCX0KKworCQkJLmlubmVyIHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBDeWFu
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJ
CQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4
IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6
IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFy
Z2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9k
eT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIu
CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCI+CisJCQkJc29tZSB0ZXh0IDMuCisJCQkJPGRp
diBjbGFzcz0idHJhbnNmb3JtZWQgaW5uZXIiPgorCQkJCQlzb21lIHRleHQgNC4KKwkJCQk8L2Rp
dj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQkJc29tZSB0ZXh0IDYuCisJCTwvZGl2
PgorCQk8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgorCQlzb21lIHRleHQgNy4KKwkJPHA+UmVuZGVy
aW5nIGEgdHJhbnNmb3JtZWQgbGF5ZXIgaW5zaWRlIGFub3RoZXIgdHJhbnNmb3JtZWQgbGF5ZXIu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRl
cmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVj
dGVkLmh0bWwKaW5kZXggOTQ0ODcxZi4uZDk5NDIzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGlu
Zy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Vi
a2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmctZXhwZWN0ZWQuaHRtbApAQCAtNSw3
ICs1LDggQEAKICAgICAucmVnaW9uewogICAgICAgICBoZWlnaHQ6NTBweDsKICAgICAgICAgd2lk
dGg6NTBweDsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4KKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEs
IDEsIDEpOy8qIEZvcmNlIGEgY29tcG9zaXRlZCBSZW5kZXJMYXllci4gKi8KICAgICB9CiA8L3N0
eWxlPgogPC9oZWFkPgpAQCAtMTMsOCArMTQsNyBAQAogPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0OTAwIj4gW0NTUyBSZWdpb25z
XSBFbmFibGUgYWNjZWxlcmF0ZWQgbGF5ZXJzIG9uIGVsZW1lbnRzIGluc2lkZSBhIFJlbmRlckZs
b3dUaHJlYWQ8L2E+LjwvcD4KIDxwPlRlc3QgdGhhdCBhbiBlbGVtZW50IHJlcXVpcmluZyBhIGNv
bXBvc2l0ZWQgbGF5ZXIsIGNvbGxlY3RlZCBpbiBhIGZsb3cgdGhyZWFkLCBpcyBkaXNwbGF5ZWQg
Y29ycmVjdGx5IGluc2lkZSBhIHJlZ2lvbi48L3A+CiA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxk
IG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KLTxkaXYgY2xhc3M9InJlZ2lvbiI+
Ci08L2Rpdj4KKzxkaXYgY2xhc3M9InJlZ2lvbiI+cmVnaW9uPC9kaXY+CiA8L2JvZHk+CiA8L2h0
bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0
LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRt
bAppbmRleCA0NTZlOTkyLi42M2FkMzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sCkBAIC0yNCw3ICsyNCw3IEBACiA8cD5UZXN0IGZvciA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ5MDAiPiBb
Q1NTIFJlZ2lvbnNdIEVuYWJsZSBhY2NlbGVyYXRlZCBsYXllcnMgb24gZWxlbWVudHMgaW5zaWRl
IGEgUmVuZGVyRmxvd1RocmVhZDwvYT4uPC9wPgogPHA+VGVzdCB0aGF0IGFuIGVsZW1lbnQgcmVx
dWlyaW5nIGEgY29tcG9zaXRlZCBsYXllciwgY29sbGVjdGVkIGluIGEgZmxvdyB0aHJlYWQsIGlz
IGRpc3BsYXllZCBjb3JyZWN0bHkgaW5zaWRlIGEgcmVnaW9uLjwvcD4KIDxwPk9uIHN1Y2Nlc3Ms
IHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgotPGRpdiBpZD0i
ZGl2MSIgY2xhc3M9ImVsZW1lbnRTaXplIj48L2Rpdj4KKzxkaXYgaWQ9ImRpdjEiIGNsYXNzPSJl
bGVtZW50U2l6ZSI+cmVnaW9uPC9kaXY+CiA8ZGl2IGlkPSJyZWdpb24xIiBjbGFzcz0iZWxlbWVu
dFNpemUiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wZWNmNzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNd
IFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRl
ciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJ
CS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50IHsKKwkJ
CQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4
OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkuY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0z
MHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJ
CXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsK
KwkJCQlib3JkZXI6IHNvbGlkIDFweCBCbGFjazsKKwkJCX0KKworCQkJLnNlY29uZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTI1cHgpOwor
CQkJCWJhY2tncm91bmQtY29sb3I6Q3lhbjsKKwkJCQltYXJnaW4tdG9wOi0xZW07CisJCQl9CisK
KwkJCS56MSwgLnoyIHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9CisKKwkJCS56MSB7
CisJCQkJei1pbmRleDogMTsKKwkJCX0KKworCQkJLnoyIHsKKwkJCQl6LWluZGV4OiAyOworCQkJ
fQorCisJCQkjcmVnaW9uIHsKKwkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJ
CQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1
cHggNnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHgg
N3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0
eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lv
biI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQgMi4KKwkJCQk8ZGl2IGNs
YXNzPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MSI+c29tZSB0ZXh0IDMuPC9kaXY+
CisJCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoy
Ij5zb21lIHRleHQgNC48L2Rpdj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQk8L2Rp
dj4KKwkJc29tZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBk
YXRlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZm
OTFmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC11cGRhdGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY0IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9t
IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBs
YXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNt
b290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCWJhY2tncm91bmQtY29s
b3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAz
cHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRl
ZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgo
LTM1cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVw
eCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29s
aWQgMXB4IEJsYWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjpDeWFuOworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgewor
CQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAx
OworCQkJfQorCisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24g
eworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJs
ZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0
bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJ
CQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgor
CTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9
ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAyLgorCQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHoyIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCQk8ZGl2IGNsYXNz
PSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCBzZWNvbmQgejEiPnNvbWUgdGV4dCA0Ljwv
ZGl2PgorCQkJCXNvbWUgdGV4dCA1LgorCQkJPC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQg
Ni4KKwkJPHA+ei1pbmRleCBzaG91bGQgd29yayBhcyBleHBlY3RlZC48L3A+CisJPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMzgzNWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LXVwZGF0ZS5odG1sCkBAIC0wLDAgKzEsNzAg
QEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBU
aGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIg
dGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQkt
d2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJ
LXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93Owor
CQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZw
eDsKKwkJCX0KKworCQkJLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJ
YmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJ
CQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7
CisJCQl9CisKKwkJCS5zZWNvbmQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVa
KC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47CisJ
CQkJbWFyZ2luLXRvcDotMWVtOworCQkJfQorCisJCQkuejEsIC56MiB7CisJCQkJcG9zaXRpb246
IHJlbGF0aXZlOworCQkJfQorCisJCQkuejEgeworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJ
CS56MiB7CisJCQkJei1pbmRleDogMjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwor
CQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHgg
NXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4
IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9z
dHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250
ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9C
ZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iY2F1c2Vz
VGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoyIj5zb21lIHRleHQgNC48L2Rpdj4KKwkJ
CXNvbWUgdGV4dCA1LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKwkJc29t
ZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuPC9wPgorCQk8
c2NyaXB0PgorCQkJZG9jdW1lbnQub2Zmc2V0VG9wOworCQkJZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIikuY2xhc3NOYW1lID0gImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoyIjsKKwkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5z
ZWNvbmQiKS5jbGFzc05hbWUgPSAiY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25k
IHoxIjsKKwkJPC9zY3JpcHQ+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1p
bmRleC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBjOGI0MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC5odG1sCkBAIC0w
LDAgKzEsNjUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1s
IHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVu
dCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJYmFja2dyb3VuZC1jb2xvcjog
WWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0
cHggNXB4IDZweDsKKwkJCX0KKworCQkJLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsK
KwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVw
eCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZw
eCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAx
cHggQmxhY2s7CisJCQl9CisKKwkJCS5zZWNvbmQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9y
OkN5YW47CisJCQkJbWFyZ2luLXRvcDotMWVtOworCQkJfQorCisJCQkuejEsIC56MiB7CisJCQkJ
cG9zaXRpb246IHJlbGF0aXZlOworCQkJfQorCisJCQkuejEgeworCQkJCXotaW5kZXg6IDE7CisJ
CQl9CisKKwkJCS56MiB7CisJCQkJei1pbmRleDogMjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJ
CQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4
IEJsYWNrOworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6
IDNweCA0cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFk
ZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJ
CX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2
IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhl
UmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoyIj5zb21lIHRleHQgNC48
L2Rpdj4KKwkJCXNvbWUgdGV4dCA1LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rp
dj4KKwkJc29tZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNr
aW5nLW9yZGVyLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVk
LXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLWV4cGVjdGVkLmh0bWwKaW5kZXggMGMxMDc5Yi4u
YjAyZTZmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3Np
dGlvbmluZy1zdGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRt
bApAQCAtMSw4ICsxLDggQEAKIDwhZG9jdHlwZSBodG1sPgogPGh0bWw+Ci08ZGl2IHN0eWxlPSJo
ZWlnaHQ6MjAwcHg7Ym9yZGVyOjVweCBzb2xpZCBibGFjaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0
aDoyMTBweCI+Ci08ZGl2IHN0eWxlPSJ3aWR0aDoyMTBweDtoZWlnaHQ6MjAwcHg7YmFja2dyb3Vu
ZC1jb2xvcjpwdXJwbGU7Ij4zPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTti
YWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo1NXB4O3RvcDowcHg7aGVpZ2h0OjIwMHB4O3dpZHRo
OjEwMHB4Ij4yPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5k
LWNvbG9yOmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7bGVmdDowO2JvdHRvbTow
Ij4xPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9y
OmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtsZWZ0OjExMHB4O3RvcDowO2hlaWdodDoxMDBweCI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7d2lkdGg6MjEwcHg7cG9zaXRpb246cmVsYXRp
dmU7Ym9yZGVyOjVweCBzb2xpZCBibGFjayI+CisJPGRpdiBzdHlsZT0id2lkdGg6MjEwcHg7aGVp
Z2h0OjIwMHB4O2JhY2tncm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgorCTxkaXYgc3R5bGU9
InBvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6Z29sZDtsZWZ0OjU1cHg7dG9wOjBw
eDtoZWlnaHQ6MjAwcHg7d2lkdGg6MTAwcHgiPjI8L2Rpdj4KKwk8ZGl2IHN0eWxlPSJwb3NpdGlv
bjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtoZWlnaHQ6
MTAwcHg7bGVmdDowO2JvdHRvbTowIj4xPC9kaXY+CisJPGRpdiBzdHlsZT0icG9zaXRpb246YWJz
b2x1dGU7YmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7bGVmdDoxMTBweDt0
b3A6MDtoZWlnaHQ6MTAwcHgiPjwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVy
Lmh0bWwKaW5kZXggZjc2ZTQ5MC4uZGQ3Y2I3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXIu
aHRtbApAQCAtNiwxNiArNiwxNCBAQCBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRD
b2x1bW5zRW5hYmxlZCh0cnVlKQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgc3R5
bGU9IndpZHRoOjIxMHB4OyBoZWlnaHQ6MjAwcHg7IGJvcmRlcjo1cHggc29saWQgYmxhY2s7IC1t
b3otY29sdW1uLXdpZHRoOjEwMHB4OyAtbW96LWNvbHVtbi1nYXA6MTBweDsgLXdlYmtpdC1jb2x1
bW4td2lkdGg6MTAwcHg7IC13ZWJraXQtY29sdW1uLWdhcDoxMHB4OyAtd2Via2l0LWNvbHVtbi1m
aWxsOmF1dG87IGNvbHVtbi13aWR0aDoxMDBweDsgY29sdW1uLWdhcDoxMHB4OyBjb2x1bW4tZmls
bDphdXRvOyI+Ci0KLTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+Ci08ZGl2IHN0eWxl
PSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7IGhlaWdodDo0MDBweDsgd2lkdGg6MTAw
cHgiPgotPGRpdiBzdHlsZT0id2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQtY29s
b3I6cHVycGxlOyI+MzwvZGl2PgotPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4Ij48L2Rpdj4KLTxk
aXYgc3R5bGU9IndpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBs
ZTsiPjM8L2Rpdj4KLTwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHotaW5k
ZXg6MTsgYmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7IHdpZHRoOjEwMCU7IGhlaWdodDoyMDBw
eDsgdG9wOjEwMHB4Ij4xPC9kaXY+Ci0KLTxkaXYgc3R5bGU9InBvc2l0aW9uOmZpeGVkO2JhY2tn
cm91bmQtY29sb3I6Z29sZDtsZWZ0OjY4cHg7dG9wOjEzcHg7aGVpZ2h0OjIwMHB4O3dpZHRoOjEw
MHB4Ij4yPC9kaXY+Ci08L2Rpdj4KKzxkaXYgc3R5bGU9Ii1tb3otY29sdW1uLXdpZHRoOjEwMHB4
OyAtbW96LWNvbHVtbi1nYXA6MTBweDsgd2lkdGg6MjEwcHg7IGhlaWdodDoyMDBweDtib3JkZXI6
NXB4IHNvbGlkIGJsYWNrOyAtd2Via2l0LWNvbHVtbi13aWR0aDoxMDBweDsgLXdlYmtpdC1jb2x1
bW4tZ2FwOjEwcHg7IC13ZWJraXQtY29sdW1uLWZpbGw6YXV0bzsgY29sdW1uLXdpZHRoOjEwMHB4
OyBjb2x1bW4tZ2FwOjEwcHg7IGNvbHVtbi1maWxsOmF1dG87Ij4KKwk8ZGl2IHN0eWxlPSJwb3Np
dGlvbjpyZWxhdGl2ZTsiPgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDts
ZWZ0OjA7IGhlaWdodDo0MDBweDsgd2lkdGg6MTAwcHgiPgorCQkJPGRpdiBzdHlsZT0id2lkdGg6
MTAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgorCQkJ
PGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4Ij48L2Rpdj4KKwkJCTxkaXYgc3R5bGU9IndpZHRoOjEw
MHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KKwkJPC9k
aXY+CisJCTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGJhY2tncm91
bmQtY29sb3I6bGlnaHRibHVlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MjAwcHg7IHRvcDoxMDBweCI+
MTwvZGl2PgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDtiYWNrZ3JvdW5kLWNvbG9yOmdv
bGQ7bGVmdDo2OHB4O3RvcDoxM3B4O2hlaWdodDoyMDBweDt3aWR0aDoxMDBweCI+MjwvZGl2Pgor
CTwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVn
aW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0
ZWQuaHRtbAppbmRleCBlMzlmZTZjLi40MWQ1NTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRpbmctY29tcG9z
aXRlZC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTEyLDEwICsxMiwxMyBAQAogICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOwogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsg
LypjcmVhdGUgU3RhY2tpbmcgQ29udGV4dCovCiB9CisjcmVnaW9uMSB7CisgICAgLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsgLyphY3RpdmF0ZSBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZyovCit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBpZD0icmVn
aW9uMSI+PC9kaXY+PGJyIC8+CisgICAgPGRpdiBpZD0icmVnaW9uMSI+cmVnaW9uPC9kaXY+PGJy
IC8+CiAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0
ZWQtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGlu
Zy1jb21wb3NpdGVkLWVsZW1lbnQuaHRtbAppbmRleCAxZGExZTJjLi4zODU4NDRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQt
ZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRp
bmctY29tcG9zaXRlZC1lbGVtZW50Lmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAKICAgICA8IS0tIFRl
c3RpbmcgdGhhdCB0aGUgUmVuZGVyT2JqZWN0IGlzIG1hcmtlZCBhcyBwYXJ0IG9mIHRoZSBSZW5k
ZXJGbG93VGhyZWFkIGJlZm9yZSBpdCBhcHBsaWVzIHRoZSBmaXJzdCBzdHlsZS4KICAgICAgICAg
VGhlIHRlc3Qgc2hvdWxkIHBhaW50IHR3byBncmVlbiByZWN0YW5nbGVzLiBUaGVyZSBzaG91bGQg
YmUgbm8gcmVkLiAtLT4KICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KLSAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0Ij5yZWdpb248L2Rpdj4KICAg
ICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJyZWdpb24xIj48L2Rpdj48YnIgLz4KICAgICA8ZGl2IGlk
PSJyZWdpb24yIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAyMWExZjc3Li5lOThkOGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjMsNyArMzIzLDcgQEAgd2Via2l0
Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gY29tcG9zaXRpbmcvb3ZlcmxhcC1ibGVuZGluZy9jaGls
ZHJlbi1vcGFjaXR5LWh1Z2UKIHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGNvbXBvc2l0
aW5nL292ZXJsYXAtYmxlbmRpbmcvY2hpbGRyZW4tb3BhY2l0eS1uby1vdmVybGFwLmh0bWwgIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBjc3MzL2Zp
bHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20tdHJhbnNmb3JtLXBhcmFtZXRlcnMuaHRtbCAgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvbGF5
ZXJzL25vLWNsaXBwaW5nLW92ZXJmbG93LWhpZGRlbi1hZGRlZC1hZnRlci10cmFuc2l0aW9uLmh0
bWwgIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBm
YXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sICBbIEltYWdlT25seUZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gZmFzdC9tdWx0aWNvbC9taXhl
ZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogd2Vi
a2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gZmFzdC9yZWdpb25zL2ZpeGVkLXBvcy1lbGVtLWlu
LXJlZ2lvbi5odG1sICBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExODkyNSBb
IERlYnVnIF0gc3ZnL3JlcGFpbnQvYnVmZmVyZWQtcmVuZGVyaW5nLXN0YXRpYy1pbWFnZS5odG1s
ICBbIEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRiZGI5OS4uZTJmMmIxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAxMy0xMC0xOCAgTWloYWkgTWFlcmVhbiAg
PG1tYWVyZWFuQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMg
ZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9u
cycgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIwNDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiB0aGUgd29yayBvZiBBbGV4YW5kcnUgQ2hpY3VsaXRh
IGF0IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTIwMzg3MiZhY3Rp
b249cmV2aWV3CisKKyAgICAgICAgVGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIGluc2lkZSB0aGUgbmFt
ZWQgZmxvdyB0aHJlYWRzIGFyZSBjb2xsZWN0ZWQgYXMgcGFydCBvZiB0aGUgcmVnaW9ucyAoYXMg
Y2hpbGRyZW4gb2YgdGhlCisgICAgICAgIEdyYXBoaWNzTGF5ZXIgb2YgdGhlIGxheWVyIHRoYXQg
Y29ycmVzcG9uZHMgdG8gdGhlIHJlZ2lvbiAod2hpY2ggaXMgYXR0YWNoZWQgdG8gdGhlIHBhcmVu
dCByZW5kZXJlciBvZgorICAgICAgICBSZW5kZXJOYW1lRmxvd0ZyYWdtZW50KSkuCisgICAgICAg
IFdoZW4gYSByZWdpb24gZGlzcGxheXMgYSBsYXllciB0aGF0IG5lZWRzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nIHdlIGFjdGl2YXRlIHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBmb3IKKyAg
ICAgICAgdGhhdCByZWdpb24gdG9vIChpbnNpZGUgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aGFzIGxhbmRlZCBiZWZvcmUgKGFzIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1
NjQ1MSksIGJ1dCB3YXMgcmV2ZXJ0ZWQgYmVjYXVzZQorICAgICAgICBmYXN0L211bHRpY29sL21p
eGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0bWwgZmFpbGVkLiBUaGUgZml4IGlzIGlu
c2lkZSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbkJlQ29tcG9zaXRlZAorICAgICAgICB0aGF0
IG9ubHkgZW5hYmxlcyBjb21wb3NpdGluZyBmb3IgbGF5ZXJzIGluc2lkZSBmbG93IHRocmVhZHMg
dGhhdCBjb2xsZWN0IHRoZSBncmFwaGljcyBsYXllcnMgdW5kZXIgdGhlIHJlZ2lvbnMuCisKKyAg
ICAgICAgQW5vdGhlciBjaGFuZ2UgZnJvbSBjaGFuZ2VzZXQgIzE1NjQ1MSBpcyB0aGF0IG5vdyB0
aGUgcmVnaW9uIHJlbmRlcmVycyBhcmUgY3JlYXRlZCBhcyBhbm9ueW1vdXMgcmVuZGVyZXJzIHVu
ZGVyCisgICAgICAgIHRoZSBlbGVtZW50IHRoYXQgaGFzIHRoZSBmbG93LWZyb20gcHJvcGVydHku
IFdoZW4gYSBjb21wb3NpdGVkIGxheWVyIGlzIG5lZWRlZCBmb3IgdGhlIHJlZ2lvbiwgaXQgc2l0
cyBpbiBpdCdzCisgICAgICAgIHBhcmVudCByZW5kZXJlciwgbm90IGluIHRoZSByZWdpb24gcmVu
ZGVyZXIgKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KS4KKworICAgICAgICBUZXN0czogY29tcG9z
aXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3Jt
ZWQtY2hpbGQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxh
eWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5n
LWZvci12aWRlby5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy5odG1sCisgICAgICAgICAgICAg
ICBjb21wb3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJl
YWQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJh
bnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAg
ICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9y
bWVkLWxheWVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRl
eC11cGRhdGUuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4
Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5v
bnltb3VzQ2hpbGRyZW4pOiBOb3QgZm9yIFJlbmRlckZsb3dUaHJlYWRzLCBhcyB0aGV5IGFyZSB1
cGRhdGVkCisgICAgICAgIHRocm91Z2ggdGhlIFJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlIGZ1
bmN0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCk6IFdoZW4gdGhlIGxheW91dCBv
ZiB0aGUgZmxvdyB0aHJlYWQgaXMgb3ZlciAoaW5jbHVkaW5nIHRoZSAyIHBoYXNlIGxheW91dCks
CisgICAgICAgIHdlIHVwZGF0ZSBhbGwgdGhlIG1hcHBpbmdzIGJldHdlZW4gdGhlIGxheWVycyBp
bnNpZGUgdGhlIGZsb3cgdGhyZWFkIGFuZCB0aGUgcmVnaW9ucyB3aGVyZSB0aG9zZSBsYXllcnMg
d2lsbCBiZQorICAgICAgICBwYWludGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6aGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KTogV2hldGhlciBhbnkgb2YgdGhl
IHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRpbmcgZGVzY2VuZGFudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZvclJlZ2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6Y2FjaGVkUmVnaW9uRm9yQ29tcG9zaXRlZExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKTogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRo
ZSBsYXllcnMgaWYgYSBsYXllciBoYXMgbW92ZWQKKyAgICAgICAgZnJvbSBhIHJlZ2lvbiB0byBh
bm90aGVyIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2Vv
bWV0cnlNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hS
ZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6ZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjppc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXllckJvdW5kcyk6IFdoZW4gd2UgY2Fs
Y3VsYXRlIHRoZSBib3VuZHMgb2YgdGhlIFJlbmRlclZpZXcsIHdlIGlnbm9yZSB0aG9zZQorICAg
ICAgICBmbG93IHRocmVhZHMgdGhhdCBjb2xsZWN0IHRoZSBncmFwaGljcyBsYXllcnMgdW5kZXIg
dGhlIHJlZ2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJM
aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlz
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnNob3VsZENsaXBDb21wb3NpdGVkQm91bmRzKTogTm90IGlmIGl0J3MgYSBmbG93
IHRocmVhZCB0aGF0IGNvbGxlY3RzIHRoZSBncmFwaGljcworICAgICAgICBsYXllcnMgdW5kZXIg
dGhlIHJlZ2lvbnMKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckdlb21ldHJ5KTogTm93IGFkanVzdHMgdGhlIGFuY2VzdG9yQ29tcG9zaXRp
bmdCb3VuZHMgZm9yIHRoZSBGbG93VGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjphZGp1c3RBbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzRm9yRmxvd1RocmVhZCk6
IE1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcworICAgICAgICBpdHMgYm9yZGVy
cywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmlzU2ltcGxlQ29udGFpbmVy
Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMpOiBOb3cgY2FsbHMgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1l
bnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlUmVn
aW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOiBEbyBub3QgaXRlcmF0
ZSB0aGUgUmVuZGVyRmxvd1RocmVhZCBkaXJlY3RseSBpZgorICAgICAgICB3ZSBhcmUgZ29pbmcg
dG8gY29sbGVjdCB0aGUgY29tcG9zaXRlZCBsYXllcnMgYXMgcGFydCBvZiByZWdpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkUmVnaW9uQ29tcG9z
aXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpjYW5CZUNvbXBvc2l0ZWQpOiBDU1MgUmVnaW9ucyBmbG93IHRocmVhZHMgZG8gbm90IG5lZWQg
dG8gYmUgY29tcG9zaXRlZCBhcyB3ZQorICAgICAgICB1c2UgY29tcG9zaXRlZCBSZW5kZXJSZWdp
b25zIHRvIHJlbmRlciB0aGUgYmFja2dyb3VuZCBvZiB0aGUgUmVuZGVyRmxvd1RocmVhZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGlu
Z0ZvckluZGlyZWN0UmVhc29uKTogSWYgaXQncyBhIGNvbnRhaW5lciBvZiBhIGNzcyByZWdpb24u
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtblNldDo6YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0
aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6bGF5ZXJPd25lcik6IFdoZW4gdGhlIGNv
bnRlbnQgaW5zaWRlIHRoZSByZWdpb24gcmVxdWlyZXMgdGhlIHJlZ2lvbiB0byBoYXZlIGEKKyAg
ICAgICAgbGF5ZXIsIHRoZSBsYXllciB3aWxsIGJlIGNyZWF0ZWQgb24gdGhlIHJlZ2lvbidzIHBh
cmVudCByZW5kZXJlciBpbnN0ZWFkLiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoYXQgcmVuZGVyZXIK
KyAgICAgICAgaG9sZGluZyB0aGUgbGF5ZXIuIFRoZSByZXR1cm4gdmFsdWUgbWF5IGJlIG51bGwu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1RocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6Om5leHRSZW5kZXJlckZv
ck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91
c1JlbmRlcmVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ6OmFkZEZsb3dDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ6OnJlbW92ZUZsb3dDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDogbV9mbG93VGhyZWFkQ2hpbGRMaXN0IGlz
IG5vdyBhbGxvY2F0ZWQgdGhyb3VnaCBhbiBPd25QdHIgdG8ga2VlcCB0aGUgcmVuZGVyCisgICAg
ICAgIGFyZW5hIHVuZGVyIHRoZSBzaXplIGxpbWl0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjphZGp1c3RSZWdp
b25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclJlZ2lvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
d3JpdGVMYXllcnMpOgorCiAyMDEzLTEwLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbnVwIHRoZSBNb2R1bGVzIGdyb3VwIGluIHRoZSBXZWJDb3Jl
Lnhjb2RlcHJvagpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29u
dHJvbGxlci5jcHAKaW5kZXggMWEzZjdiYS4uNWIyYjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcg
QEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVy
c0lmTmVlZGVkKCkKICAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJldmVyc2Ugb3JkZXIg
YmVjYXVzZSBSZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBSZW5kZXJMYXllcnMgZm9yIHRoZSBm
b2xsb3dpbmcgZmxvdyB0aHJlYWRzLgogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlz
dDo6cmV2ZXJzZV9pdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5y
YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPnJlbmQoKTsgKytp
dGVyKSB7CiAgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0
ZXI7Ci0gICAgICAgIGZsb3dSZW5kZXJlci0+dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZO
ZWVkZWQoKTsKKyAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRvUmVnaW9uTWFw
cGluZ3NJZk5lZWRlZCgpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDM2MDYzNDAuLjBlMGRmZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc1NCw2ICs3NTQsMTAgQEAg
dm9pZCBSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hpbGRyZW4oU3R5
bGVQcm9wYWdhdGlvblR5cGUgcHJvcGEKICAgICAgICAgICAgIGNvbnRpbnVlOwogI2VuZGlmCiAK
KyAgICAgICAgLy8gUmVuZGVyRmxvd1RocmVhZHMgYXJlIHVwZGF0ZWQgdGhyb3VnaCB0aGUgUmVu
ZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UgZnVuY3Rpb24uCisgICAgICAgIGlmIChjaGlsZC0+aXNS
ZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0
eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgY2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSk7CiAgICAg
ICAgIGlmIChzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAgIGlmIChj
aGlsZC0+c3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IDhhZjQyOTcuLjk5Y2VkY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIlJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0yMzYsOSArMjM3
LDEwIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKICAgICAvLyBOb3RlIHRoYXQg
dGhlcmUncyBubyBuZWVkIHRvIGRvIHNvIGZvciB0aGUgaW5saW5lIG11bHRpLWNvbHVtbiBhcyB3
ZSBhcmUgbm90IG1vdmluZyBsYXllcnMgaW50byBkaWZmZXJlbnQKICAgICAvLyBjb250YWluZXJz
LCBidXQganVzdCBhZGp1c3RpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBSZW5kZXJMYXllckJhY2tp
bmcuCiAgICAgaWYgKCFtX25lZWRzVHdvUGhhc2VzTGF5b3V0KSB7Ci0gICAgICAgIHVwZGF0ZUxh
eWVyVG9SZWdpb25NYXBwaW5ncygpOwotICAgICAgICAvLyBGSVhNRTogSWYgd2UgaGF2ZSBsYXll
cnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2Ugc2hvdWxkIHRyaWdn
ZXIKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdp
b24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlcgogICAgICAgICAvLyBhIGNvbXBvc2l0ZWQgbGF5ZXJz
IHJlYnVpbGQgaW4gaGVyZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9ucyB3aWxsIGNvbGxl
Y3QgdGhlIHJpZ2h0IGxheWVycy4KKyAgICAgICAgaWYgKHVwZGF0ZUFsbExheWVyVG9SZWdpb25N
YXBwaW5ncygpKQorICAgICAgICAgICAgbGF5ZXIoKS0+Y29tcG9zaXRvcigpLnNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjUwLDM3ICsyNTIs
ODIgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogfQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotUmVuZGVyUmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdp
b25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIpCitib29sIFJlbmRl
ckZsb3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0CiB7Ci0g
ICAgTGF5b3V0UG9pbnQgbGVmdFRvcExvY2F0aW9uID0gY2hpbGRMYXllci0+cmVuZGVyQm94KCkg
PyBjaGlsZExheWVyLT5yZW5kZXJCb3goKS0+ZmxpcEZvcldyaXRpbmdNb2RlKExheW91dFBvaW50
KCkpIDogTGF5b3V0UG9pbnQoKTsKLSAgICBMYXlvdXRQb2ludCBmbG93VGhyZWFkT2Zmc2V0ID0g
Zmxvb3JlZExheW91dFBvaW50KGNoaWxkTGF5ZXItPnJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5l
clBvaW50KGxlZnRUb3BMb2NhdGlvbiwgdGhpcywgQXBwbHlDb250YWluZXJGbGlwKSk7Ci0gICAg
cmV0dXJuIHJlZ2lvbkF0QmxvY2tPZmZzZXQoMCwgZmxpcEZvcldyaXRpbmdNb2RlKGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBmbG93VGhyZWFkT2Zmc2V0LnkoKSA6IGZsb3dUaHJlYWRPZmZz
ZXQueCgpKSwgdHJ1ZSwgRGlzYWxsb3dSZWdpb25BdXRvR2VuZXJhdGlvbik7CisgICAgZm9yIChS
ZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGlmIChSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiBsYXllck93bmVyID0gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dCgqaXRlciktPmxheWVyT3duZXIoKSkKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5oYXNM
YXllcigpICYmIGxheWVyT3duZXItPmxheWVyKCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citjb25zdCBSZW5kZXJMYXllckxpc3QqIFJlbmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZv
clJlZ2lvbihSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uKQoreworICAgIGlmICghbV9y
ZWdpb25Ub0xheWVyTGlzdE1hcCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgdXBkYXRlQWxsTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKTsKKyAgICBSZWdpb25Ub0xheWVyTGlzdE1hcDo6
Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3IgPSBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwLT5maW5kKHJl
Z2lvbik7CisgICAgcmV0dXJuIGl0ZXJhdG9yID09IG1fcmVnaW9uVG9MYXllckxpc3RNYXAtPmVu
ZCgpID8gMCA6ICZpdGVyYXRvci0+dmFsdWU7Cit9CisKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIm
IGNoaWxkTGF5ZXIpCit7CisgICAgaWYgKGNoaWxkTGF5ZXIucmVuZGVyQm94KCkpIHsKKyAgICAg
ICAgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9IDA7CisgICAgICAgIFJlbmRlclJlZ2lvbiog
ZW5kUmVnaW9uID0gMDsKKyAgICAgICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goY2hpbGRMYXllci5y
ZW5kZXJCb3goKSwgc3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7CisgICAgICAgIC8vIFRoZSB2aWRl
byB0YWcgaXMgc3VjaCBhIGJveCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHJlZ2lvbiByYW5nZSBiZWNh
dXNlIGl0J3MgaW5saW5lIChieSBkZWZhdWx0KS4KKyAgICAgICAgaWYgKHN0YXJ0UmVnaW9uKQor
ICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoc3RhcnRSZWdpb24p
OworICAgIH0KKworICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlJ2xsIGhhdmUgcmVn
aW9uIHJhbmdlcyBmb3IgaW5saW5lcyBhcyB3ZWxsLgorICAgIExheW91dFBvaW50IGZsb3dUaHJl
YWRPZmZzZXQgPSBmbG9vcmVkTGF5b3V0UG9pbnQoY2hpbGRMYXllci5yZW5kZXJlcigpLmxvY2Fs
VG9Db250YWluZXJQb2ludChMYXlvdXRQb2ludCgpLCB0aGlzLCBBcHBseUNvbnRhaW5lckZsaXAp
KTsKKyAgICByZXR1cm4gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudChyZWdpb25BdEJsb2NrT2Zm
c2V0KDAsIGZsaXBGb3JXcml0aW5nTW9kZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxv
d1RocmVhZE9mZnNldC55KCkgOiBmbG93VGhyZWFkT2Zmc2V0LngoKSksIHRydWUsIERpc2FsbG93
UmVnaW9uQXV0b0dlbmVyYXRpb24pKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRh
dGVSZWdpb25Gb3JSZW5kZXJMYXllcihSZW5kZXJMYXllciogbGF5ZXIsIExheWVyVG9SZWdpb25N
YXAmIGxheWVyVG9SZWdpb25NYXAsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiByZWdpb25Ub0xheWVy
TGlzdE1hcCwgYm9vbCYgbmVlZHNMYXllclVwZGF0ZSkKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiBSZW5kZXJGbG93VGhyZWFkOjpjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVy
TGF5ZXImIGNoaWxkTGF5ZXIpCiB7Ci0gICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSByZWdpb25G
b3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOworICAgIGlmICghbV9sYXllclRvUmVnaW9uTWFwKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5l
ZWRlZCgpOworICAgIHJldHVybiBtX2xheWVyVG9SZWdpb25NYXAtPmdldCgmY2hpbGRMYXllcik7
Cit9CisKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6Y29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVy
UmVnaW9ucygpIGNvbnN0Cit7CisgICAgLy8gV2Ugb25seSBuZWVkIHRvIG1hcCBsYXllcnMgdG8g
cmVnaW9ucyBmb3IgbmFtZWQgZmxvdyB0aHJlYWRzLgorICAgIC8vIE11bHRpLWNvbHVtbiB0aHJl
YWRzIGFyZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSByZWdpb25zIGFuZCBkbyBub3QgcmVxdWly
ZQorICAgIC8vIGRpc3RyaWJ1dGluZyB0aGUgbGF5ZXJzLgorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncyhS
ZW5kZXJMYXllciYgbGF5ZXIsIExheWVyVG9SZWdpb25NYXAmIGxheWVyVG9SZWdpb25NYXAsIFJl
Z2lvblRvTGF5ZXJMaXN0TWFwJiByZWdpb25Ub0xheWVyTGlzdE1hcCwgYm9vbCYgbmVlZHNMYXll
clVwZGF0ZSkKK3sKKyAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uID0gcmVnaW9u
Rm9yQ29tcG9zaXRlZExheWVyKGxheWVyKTsKICAgICBpZiAoIW5lZWRzTGF5ZXJVcGRhdGUpIHsK
LSAgICAgICAgQVNTRVJUKG1fbGF5ZXJUb1JlZ2lvbk1hcCk7CiAgICAgICAgIC8vIEZpZ3VyZSBv
dXQgaWYgd2UgbW92ZWQgdGhpcyBsYXllciBmcm9tIGEgcmVnaW9uIHRvIHRoZSBvdGhlci4KLSAg
ICAgICAgUmVuZGVyUmVnaW9uKiBwcmV2aW91c1JlZ2lvbiA9IG1fbGF5ZXJUb1JlZ2lvbk1hcC0+
Z2V0KGxheWVyKTsKKyAgICAgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHByZXZpb3VzUmVn
aW9uID0gY2FjaGVkUmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKGxheWVyKTsKICAgICAgICAgaWYg
KHByZXZpb3VzUmVnaW9uICE9IHJlZ2lvbikKICAgICAgICAgICAgIG5lZWRzTGF5ZXJVcGRhdGUg
PSB0cnVlOwogICAgIH0KKwogICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm47Ci0gICAg
bGF5ZXJUb1JlZ2lvbk1hcC5zZXQobGF5ZXIsIHJlZ2lvbik7CisKKyAgICBsYXllclRvUmVnaW9u
TWFwLnNldCgmbGF5ZXIsIHJlZ2lvbik7CisKICAgICBSZWdpb25Ub0xheWVyTGlzdE1hcDo6aXRl
cmF0b3IgaXRlcmF0b3IgPSByZWdpb25Ub0xheWVyTGlzdE1hcC5maW5kKHJlZ2lvbik7CiAgICAg
UmVuZGVyTGF5ZXJMaXN0JiBsaXN0ID0gaXRlcmF0b3IgPT0gcmVnaW9uVG9MYXllckxpc3RNYXAu
ZW5kKCkgPyByZWdpb25Ub0xheWVyTGlzdE1hcC5zZXQocmVnaW9uLCBSZW5kZXJMYXllckxpc3Qo
KSkuaXRlcmF0b3ItPnZhbHVlIDogaXRlcmF0b3ItPnZhbHVlOwotICAgIGxpc3QuYXBwZW5kKGxh
eWVyKTsKKyAgICBBU1NFUlQoIWxpc3QuY29udGFpbnMoJmxheWVyKSk7CisgICAgbGlzdC5hcHBl
bmQoJmxheWVyKTsKIH0KIAotYm9vbCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVn
aW9uTWFwcGluZ3MoKQorYm9vbCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVBbGxMYXllclRvUmVn
aW9uTWFwcGluZ3MoKQogewotICAgIC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJl
Z2lvbnMgZm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KLSAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFk
cyBhcmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUK
LSAgICAvLyBkaXN0cmlidXRpbmcgdGhlIGxheWVycy4KLSAgICBpZiAoIWlzT3V0T2ZGbG93UmVu
ZGVyRmxvd1RocmVhZCgpKQorICAgIGlmICghY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVn
aW9ucygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBXZSBjYW4ndCB1c2UgY3Vy
cmVudEZsb3dUaHJlYWQgYXMgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBpbnRlcmxlYXZlZCBmbG93
IHRocmVhZHMgYW5kIHRoZSB3cm9uZyBvbmUgY291bGQgYmUgdXNlZC4KQEAgLTI4OCwzNCArMzM1
LDI2IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdz
KCkKICAgICBDdXJyZW50UmVuZGVyRmxvd1RocmVhZERpc2FibGVyIGRpc2FibGVyKCZ2aWV3KCkp
OwogCiAgICAgLy8gSWYgdGhlIFJlbmRlckZsb3dUaHJlYWQgaGFkIGEgei1pbmRleCBsYXllciB1
cGRhdGUsIHRoZW4gd2UgbmVlZCB0byB1cGRhdGUgdGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIHRvby4K
LSAgICBib29sIG5lZWRzTGF5ZXJVcGRhdGUgPSBtX2xheWVyc1RvUmVnaW9uTWFwcGluZ3NEaXJ0
eSB8fCAhbV9sYXllclRvUmVnaW9uTWFwLmdldCgpOworICAgIGJvb2wgbmVlZHNMYXllclVwZGF0
ZSA9IGxheWVyKCktPmlzRGlydHlSZW5kZXJGbG93VGhyZWFkKCkgfHwgbV9sYXllcnNUb1JlZ2lv
bk1hcHBpbmdzRGlydHkgfHwgIW1fbGF5ZXJUb1JlZ2lvbk1hcC5nZXQoKTsKICAgICBsYXllcigp
LT51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsKIAogICAgIExheWVyVG9SZWdpb25NYXAgbGF5
ZXJUb1JlZ2lvbk1hcDsKICAgICBSZWdpb25Ub0xheWVyTGlzdE1hcCByZWdpb25Ub0xheWVyTGlz
dE1hcDsKIAotICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxh
eWVyKCktPm5lZ1pPcmRlckxpc3QoKSkgewotICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWda
T3JkZXJMaXN0LT5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNp
emU7ICsraSkKLSAgICAgICAgICAgIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKG5lZ1pPcmRl
ckxpc3QtPmF0KGkpLCBsYXllclRvUmVnaW9uTWFwLCByZWdpb25Ub0xheWVyTGlzdE1hcCwgbmVl
ZHNMYXllclVwZGF0ZSk7Ci0gICAgfQotCi0gICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBu
b3JtYWxGbG93TGlzdCA9IGxheWVyKCktPm5vcm1hbEZsb3dMaXN0KCkpIHsKLSAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQotICAgICAgICAgICAgdXBkYXRlUmVnaW9uRm9y
UmVuZGVyTGF5ZXIobm9ybWFsRmxvd0xpc3QtPmF0KGkpLCBsYXllclRvUmVnaW9uTWFwLCByZWdp
b25Ub0xheWVyTGlzdE1hcCwgbmVlZHNMYXllclVwZGF0ZSk7Ci0gICAgfQotICAgIAotICAgIGlm
IChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyKCktPnBvc1pPcmRl
ckxpc3QoKSkgewotICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXpl
KCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKLSAgICAg
ICAgICAgIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKHBvc1pPcmRlckxpc3QtPmF0KGkpLCBs
YXllclRvUmVnaW9uTWFwLCByZWdpb25Ub0xheWVyTGlzdE1hcCwgbmVlZHNMYXllclVwZGF0ZSk7
Ci0gICAgfQorICAgIFJlbmRlckxheWVyTGlzdCogbGlzdHNbXSA9IHsgbGF5ZXIoKS0+bmVnWk9y
ZGVyTGlzdCgpLCBsYXllcigpLT5ub3JtYWxGbG93TGlzdCgpLCBsYXllcigpLT5wb3NaT3JkZXJM
aXN0KCl9OworICAgIGZvciAoc2l6ZV90IGxpc3RJbmRleCA9IDA7IGxpc3RJbmRleCA8IHNpemVv
ZihsaXN0cykgLyBzaXplb2YobGlzdHNbMF0pOyArK2xpc3RJbmRleCkKKyAgICAgICAgaWYgKFJl
bmRlckxheWVyTGlzdCogbGlzdCA9IGxpc3RzW2xpc3RJbmRleF0pCisgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMCwgbGlzdFNpemUgPSBsaXN0LT5zaXplKCk7IGkgPCBsaXN0U2l6ZTsgKytp
KQorICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncygqbGlzdC0+YXQo
aSksIGxheWVyVG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBk
YXRlKTsKIAogICAgIGlmIChuZWVkc0xheWVyVXBkYXRlKSB7CiAgICAgICAgIGlmICghbV9sYXll
clRvUmVnaW9uTWFwKQogICAgICAgICAgICAgbV9sYXllclRvUmVnaW9uTWFwID0gYWRvcHRQdHIo
bmV3IExheWVyVG9SZWdpb25NYXAoKSk7CiAgICAgICAgIG1fbGF5ZXJUb1JlZ2lvbk1hcC0+c3dh
cChsYXllclRvUmVnaW9uTWFwKTsKKworICAgICAgICBpZiAoIW1fcmVnaW9uVG9MYXllckxpc3RN
YXApCisgICAgICAgICAgICBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwID0gYWRvcHRQdHIobmV3IFJl
Z2lvblRvTGF5ZXJMaXN0TWFwKCkpOworICAgICAgICBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwLT5z
d2FwKHJlZ2lvblRvTGF5ZXJMaXN0TWFwKTsKICAgICB9CiAKICAgICBtX2xheWVyc1RvUmVnaW9u
TWFwcGluZ3NEaXJ0eSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKaW5kZXggYmUxNTRiMy4uYTM4NDNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC00MSwxMyArNDEsMTYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RydWN0IExheWVyRnJhZ21lbnQ7CiB0eXBlZGVmIFZlY3RvcjxMYXllckZy
YWdtZW50LCAxPiBMYXllckZyYWdtZW50czsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CitjbGFz
cyBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVu
ZGVyUmVnaW9uOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBM
aXN0SGFzaFNldDxSZW5kZXJSZWdpb24qPiBSZW5kZXJSZWdpb25MaXN0OwogdHlwZWRlZiBWZWN0
b3I8UmVuZGVyTGF5ZXIqPiBSZW5kZXJMYXllckxpc3Q7Ci10eXBlZGVmIEhhc2hNYXA8UmVuZGVy
UmVnaW9uKiwgUmVuZGVyTGF5ZXJMaXN0PiBSZWdpb25Ub0xheWVyTGlzdE1hcDsKLXR5cGVkZWYg
SGFzaE1hcDxSZW5kZXJMYXllciosIFJlbmRlclJlZ2lvbio+IExheWVyVG9SZWdpb25NYXA7Cit0
eXBlZGVmIEhhc2hNYXA8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqLCBSZW5kZXJMYXllckxpc3Q+
IFJlZ2lvblRvTGF5ZXJMaXN0TWFwOwordHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVu
ZGVyTmFtZWRGbG93RnJhZ21lbnQqPiBMYXllclRvUmVnaW9uTWFwOworI2VuZGlmCiAKIC8vIFJl
bmRlckZsb3dUaHJlYWQgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgcmVuZGVyIG9iamVjdHMg
dGhhdCBwYXJ0aWNpcGF0ZSBpbiBhCiAvLyBmbG93IHRocmVhZC4gSXQgd2lsbCBhbHNvIGhlbHAg
aW4gZG9pbmcgdGhlIGxheW91dC4gSG93ZXZlciwgaXQgd2lsbCBub3QgcmVuZGVyCkBAIC0xMTcs
OCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgUmVuZGVyUmVnaW9uKiByZWdpb25BdEJsb2NrT2Zm
c2V0KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQsIGJvb2wgZXh0ZW5kTGFzdFJlZ2lvbiA9
IGZhbHNlLCBSZWdpb25BdXRvR2VuZXJhdGlvblBvbGljeSA9IEFsbG93UmVnaW9uQXV0b0dlbmVy
YXRpb24pOwogCi0gICAgY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBnZXRMYXllckxpc3RGb3JSZWdp
b24oUmVuZGVyUmVnaW9uKikgY29uc3Q7Ci0KICAgICBib29sIHJlZ2lvbnNIYXZlVW5pZm9ybUxv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdp
ZHRoOyB9CiAgICAgYm9vbCByZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0OyB9CiAKQEAgLTE4MSwx
MiArMTgyLDIyIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTmVlZHNUd29QaGFzZXNMYXlvdXQo
KSB7IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSBmYWxzZTsgfQogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIFdoZXRoZXIgYW55IG9mIHRoZSByZWdpb25zIGhhcyBh
IGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgYm9vbCBoYXNDb21wb3NpdGluZ1JlZ2lvbkRl
c2NlbmRhbnQoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0TmVlZHNMYXllclRvUmVnaW9uTWFwcGlu
Z3NVcGRhdGUoKSB7IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5ID0gdHJ1ZTsgfQotICAg
IHZvaWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKQorICAgIHZvaWQgdXBk
YXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKQogICAgIHsKICAgICAgICAgaWYg
KG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KQotICAgICAgICAgICAgdXBkYXRlTGF5ZXJU
b1JlZ2lvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFw
cGluZ3MoKTsKICAgICB9CisKKyAgICBjb25zdCBSZW5kZXJMYXllckxpc3QqIGdldExheWVyTGlz
dEZvclJlZ2lvbihSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCopOworCisgICAgUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQqIHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciYpOyAvLyBC
eSBtZWFucyBvZiBnZXRSZWdpb25SYW5nZUZvckJveCBvciByZWdpb25BdEJsb2NrT2Zmc2V0Lgor
ICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5
ZXIoUmVuZGVyTGF5ZXImKTsKKworICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0c0dyYXBoaWNzTGF5
ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHZvaWQgcHVzaEZsb3dUaHJl
YWRMYXlvdXRTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QqKTsKQEAgLTIyMiw3ICsyMzMsMTEgQEAg
cHJvdGVjdGVkOgogICAgIExheW91dFJlY3QgY29tcHV0ZVJlZ2lvbkNsaXBwaW5nUmVjdChjb25z
dCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRSZWN0JikgY29u
c3Q7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgUmVuZGVyUmVnaW9u
KiByZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIqKTsKKyAgICBib29sIHVwZGF0
ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpOworCisgICAgLy8gVHJpZ2dlcnMgYSBsYXllcnMn
IHVwZGF0ZSBpZiBhIGxheWVyIGhhcyBtb3ZlZCBmcm9tIGEgcmVnaW9uIHRvIGFub3RoZXIgc2lu
Y2UgdGhlIGxhc3QgdXBkYXRlLgorICAgIHZvaWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdz
KFJlbmRlckxheWVyJiwgTGF5ZXJUb1JlZ2lvbk1hcCYsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiwg
Ym9vbCYgbmVlZHNMYXllclVwZGF0ZSk7CisgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHJl
Z2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopOwogICAgIGJvb2wgdXBkYXRlTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CiAgICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXll
cihSZW5kZXJMYXllciosIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYs
IGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpOwogI2VuZGlmCkBAIC0zMDQsNyArMzE5LDExIEBAIHBy
b3RlY3RlZDoKICAgICB9OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
IC8vIFRvIGVhc2lseSBmaW5kIHRoZSByZWdpb24gd2hlcmUgYSBsYXllciBzaG91bGQgYmUgcGFp
bnRlZC4KICAgICBPd25QdHI8TGF5ZXJUb1JlZ2lvbk1hcD4gbV9sYXllclRvUmVnaW9uTWFwOwor
CisgICAgLy8gVG8gZWFzaWx5IGZpbmQgdGhlIGxpc3Qgb2YgbGF5ZXJzIHRoYXQgcGFpbnQgaW4g
YSByZWdpb24uCisgICAgT3duUHRyPFJlZ2lvblRvTGF5ZXJMaXN0TWFwPiBtX3JlZ2lvblRvTGF5
ZXJMaXN0TWFwOwogI2VuZGlmCiAKICAgICAvLyBBIG1hcHMgZnJvbSBSZW5kZXJCb3gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCmluZGV4IDE4NjJh
OTUuLjZiYWU0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
ZW9tZXRyeU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21l
dHJ5TWFwLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgi
CiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKQEAgLTI1MSw2ICsyNTIsMTIgQEAgdm9pZCBSZW5kZXJH
ZW9tZXRyeU1hcDo6cHVzaFZpZXcoY29uc3QgUmVuZGVyVmlldyogdmlldywgY29uc3QgTGF5b3V0
U2l6ZSYgc2Nyb2wKICAgICBzdGVwSW5zZXJ0ZWQoc3RlcCk7CiB9CiAKK3ZvaWQgUmVuZGVyR2Vv
bWV0cnlNYXA6OnB1c2hSZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQpCit7CisgICAgbV9tYXBwaW5nLmFwcGVuZChSZW5kZXJHZW9tZXRyeU1hcFN0ZXAo
Zmxvd1RocmVhZCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpKTsKKyAgICBzdGVwSW5zZXJ0
ZWQobV9tYXBwaW5nLmxhc3QoKSk7Cit9CisKIHZvaWQgUmVuZGVyR2VvbWV0cnlNYXA6OnBvcE1h
cHBpbmdzVG9BbmNlc3Rvcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclJl
bmRlcmVyKQogewogICAgIEFTU0VSVChtX21hcHBpbmcuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgKaW5kZXggOTJkNTIwOS4uNDRmYmJlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgKQEAgLTM2
LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSZW5kZXJGbG93VGhy
ZWFkOwogY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJMYXllck1vZGVsT2JqZWN0Owog
Y2xhc3MgUmVuZGVyVmlldzsKQEAgLTExMCw2ICsxMTEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBS
ZW5kZXJWaWV3IGdldHMgc3BlY2lhbCB0cmVhdG1lbnQsIGJlY2F1c2UgaXQgYXBwbGllcyB0aGUg
c2Nyb2xsIG9mZnNldCBvbmx5IGZvciBlbGVtZW50cyBpbnNpZGUgaW4gZml4ZWQgcG9zaXRpb24u
CiAgICAgdm9pZCBwdXNoVmlldyhjb25zdCBSZW5kZXJWaWV3KiwgY29uc3QgTGF5b3V0U2l6ZSYg
c2Nyb2xsT2Zmc2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCogPSAwKTsKKyAgICB2b2lk
IHB1c2hSZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlckZsb3dUaHJlYWQqKTsKIAogcHJpdmF0
ZToKICAgICB2b2lkIG1hcFRvQ29udGFpbmVyKFRyYW5zZm9ybVN0YXRlJiwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyID0gMCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1YmFkOWE4Li5jMTk4YjM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTg0LDYgKzg0LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJNYXJxdWVlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyUmVwbGljYS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgpAQCAtNDAzMSw3ICs0MDMyLDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiBsaXN0
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdC0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIgPSBs
aXN0LT5hdChpKTsKLSAgICAgICAgaWYgKGNoaWxkTGF5ZXItPmlzT3V0T2ZGbG93UmVuZGVyRmxv
d1RocmVhZCgpKQorICAgICAgICBpZiAoY2hpbGRMYXllci0+aXNGbG93VGhyZWFkQ29sbGVjdGlu
Z0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAog
ICAgICAgICBpZiAoIWNoaWxkTGF5ZXItPmlzUGFnaW5hdGVkKCkpCkBAIC00NDQ1LDYgKzQ0NDYs
MjUgQEAgRWxlbWVudCogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0VsZW1lbnQoKSBjb25zdAogICAg
IHJldHVybiAwOwogfQogCitSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0Zsb3dU
aHJlYWRBbmNlc3RvcigpIGNvbnN0Cit7CisgICAgUmVuZGVyTGF5ZXIqIGN1cnIgPSBwYXJlbnQo
KTsKKyAgICBmb3IgKDsgY3VyciAmJiAhY3Vyci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7IGN1cnIg
PSBjdXJyLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoY3Vyci0+aXNTdGFja2luZ0NvbnRhaW5l
cigpICYmIGN1cnItPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgICAgICAvLyBXZSBvbmx5IGFk
anVzdCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGxldmVsIG9mIGxheWVycy4KKyAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBjdXJyOworfQorCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJMYXllcjo6aXNGbG93
VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gcmVuZGVyZXIoKS5pc1JlbmRlckZsb3dUaHJlYWQoKSAmJiB0b1JlbmRlckZsb3dU
aHJlYWQocmVuZGVyZXIoKSkuY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpOwor
fQorI2VuZGlmCisKIC8vIENvbXB1dGUgdGhlIHotb2Zmc2V0IG9mIHRoZSBwb2ludCBpbiB0aGUg
dHJhbnNmb3JtU3RhdGUuCiAvLyBUaGlzIGlzIGVmZmVjdGl2ZWx5IHByb2plY3RpbmcgYSByYXkg
bm9ybWFsIHRvIHRoZSBwbGFuZSBvZiBhbmNlc3RvciwgZmluZGluZyB3aGVyZSB0aGF0CiAvLyBy
YXkgaW50ZXJzZWN0cyB0YXJnZXQsIGFuZCBjb21wdXRpbmcgdGhlIHogZGVsdGEgYmV0d2VlbiB0
aG9zZSB0d28gcG9pbnRzLgpAQCAtNDg5MCw3ICs0OTEwLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRl
ckxheWVyOjpoaXRUZXN0TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGlzdCwgUmVuZGVyTGF5
ZXIqIHIKICAgICBSZW5kZXJMYXllciogcmVzdWx0TGF5ZXIgPSAwOwogICAgIGZvciAoaW50IGkg
PSBsaXN0LT5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICBSZW5kZXJMYXllciog
Y2hpbGRMYXllciA9IGxpc3QtPmF0KGkpOwotICAgICAgICBpZiAoY2hpbGRMYXllci0+aXNPdXRP
ZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgIGlmIChjaGlsZExheWVyLT5pc0Zsb3dU
aHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBSZW5kZXJMYXllciogaGl0TGF5ZXIgPSAwOwogICAgICAgICBI
aXRUZXN0UmVzdWx0IHRlbXBSZXN1bHQocmVzdWx0LmhpdFRlc3RMb2NhdGlvbigpKTsKQEAgLTU0
OTcsNyArNTUxNyw4IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91
bmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBjCiAgICAgICAgIHNpemVfdCBs
aXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5
ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChpKTsKLSAgICAgICAgICAgIGlmIChmbGFncyAmIEluY2x1
ZGVDb21wb3NpdGVkRGVzY2VuZGFudHMgfHwgIWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewor
ICAgICAgICAgICAgLy8gVGhlIFJlbmRlck5hbWVkRmxvd1RocmVhZCBpcyBpZ25vcmVkIHdoZW4g
d2UgY2FsY3VsYXRlIHRoZSBib3VuZHMgb2YgdGhlIFJlbmRlclZpZXcuCisgICAgICAgICAgICBp
ZiAoKGZsYWdzICYgSW5jbHVkZUNvbXBvc2l0ZWREZXNjZW5kYW50cyB8fCAhY3VyTGF5ZXItPmlz
Q29tcG9zaXRlZCgpKSAmJiAhY3VyTGF5ZXItPmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGlj
c0xheWVyc1VuZGVyUmVnaW9ucygpKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBjaGls
ZFVuaW9uQm91bmRzID0gY3VyTGF5ZXItPmNhbGN1bGF0ZUxheWVyQm91bmRzKHRoaXMsIDAsIGRl
c2NlbmRhbnRGbGFncyk7CiAgICAgICAgICAgICAgICAgdW5pb25Cb3VuZHMudW5pdGUoY2hpbGRV
bmlvbkJvdW5kcyk7CiAgICAgICAgICAgICB9CkBAIC01NTEwLDcgKzU1MzEsNyBAQCBMYXlvdXRS
ZWN0IFJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciog
YW5jZXN0b3JMYXllciwgYwogICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gbm9y
bWFsRmxvd0xpc3QtPmF0KGkpOwogICAgICAgICAgICAgLy8gUmVuZGVyVmlldyB3aWxsIGFsd2F5
cyByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGRvY3VtZW50LCBiZWZvcmUgcmVhY2hpbmcgdGhpcyBw
b2ludCwKICAgICAgICAgICAgIC8vIHNvIHRoZXJlJ3Mgbm8gd2F5IHdlIGNvdWxkIGhpdCBhIFJl
bmRlck5hbWVkRmxvd1RocmVhZCBoZXJlLgotICAgICAgICAgICAgQVNTRVJUKCFjdXJMYXllci0+
aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpOworICAgICAgICAgICAgQVNTRVJUKCFjdXJM
YXllci0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkp
OwogICAgICAgICAgICAgaWYgKGZsYWdzICYgSW5jbHVkZUNvbXBvc2l0ZWREZXNjZW5kYW50cyB8
fCAhY3VyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVj
dCBjdXJBYnNCb3VuZHMgPSBjdXJMYXllci0+Y2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgMCwg
ZGVzY2VuZGFudEZsYWdzKTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5kcy51bml0ZShjdXJB
YnNCb3VuZHMpOwpAQCAtNTczMyw3ICs1NzU0LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHla
T3JkZXJMaXN0cygpCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KCFyZW5kZXJlcigpLmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgewotICAgICAgICBpZiAocmVu
ZGVyZXIoKS5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgaWYgKGlzRmxv
d1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAg
ICAgdG9SZW5kZXJGbG93VGhyZWFkKHJlbmRlcmVyKCkpLnNldE5lZWRzTGF5ZXJUb1JlZ2lvbk1h
cHBpbmdzVXBkYXRlKCk7CiAgICAgICAgIGNvbXBvc2l0b3IoKS5zZXRDb21wb3NpdGluZ0xheWVy
c05lZWRSZWJ1aWxkKCk7CiAgICAgICAgIGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkKCkpCkBAIC01NzU5LDcgKzU3ODAsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAoIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7Ci0g
ICAgICAgIGlmIChyZW5kZXJlcigpLmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAg
ICAgICBpZiAoaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25z
KCkpCiAgICAgICAgICAgICB0b1JlbmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuc2V0TmVlZHNM
YXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKTsKICAgICAgICAgY29tcG9zaXRvcigpLnNldENv
bXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKaW5kZXggMjAxODg1Yy4uNDE5MWE4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTc1MCw2ICs3NTAsNyBAQCBwdWJsaWM6CiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBpc0NvbXBvc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBtX2JhY2tpbmcgIT0gMDsgfQorICAgIGJvb2wgaGFzQ29tcG9zaXRpbmdEZXNj
ZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQ7IH0KICAg
ICBib29sIGhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3Q7CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5n
KiBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nLmdldCgpOyB9CiAgICAgUmVuZGVy
TGF5ZXJCYWNraW5nKiBlbnN1cmVCYWNraW5nKCk7CkBAIC04MTMsNyArODE0LDIwIEBAIHB1Ymxp
YzoKICAgICBWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiB2aWV3cG9ydENv
bnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uPihtX3ZpZXdwb3J0Q29uc3Ry
YWluZWROb3RDb21wb3NpdGVkUmVhc29uKTsgfQogI2VuZGlmCiAgICAgCisgICAgYm9vbCBpc1Jl
bmRlckZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLmlzUmVuZGVyRmxvd1Ro
cmVhZCgpOyB9CiAgICAgYm9vbCBpc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdCB7
IHJldHVybiByZW5kZXJlcigpLmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpOyB9CisgICAg
Ym9vbCBpc0luc2lkZUZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLmZsb3dU
aHJlYWRTdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6Tm90SW5zaWRlRmxvd1RocmVhZDsgfQorICAg
IGJvb2wgaXNJbnNpZGVPdXRPZkZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigp
LmZsb3dUaHJlYWRTdGF0ZSgpID09IFJlbmRlck9iamVjdDo6SW5zaWRlT3V0T2ZGbG93VGhyZWFk
OyB9CisgICAgYm9vbCBpc0RpcnR5UmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQoaXNSZW5kZXJGbG93VGhyZWFkKCkpOworICAgICAgICByZXR1cm4gbV96T3Jk
ZXJMaXN0c0RpcnR5IHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eTsKKyAgICB9CisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlubGluZSBib29sIGlzRmxvd1RocmVhZENvbGxl
Y3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0OworI2VuZGlmCisKKyAgICBS
ZW5kZXJMYXllciogZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKCkgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgZW51bSBDb2xsZWN0TGF5ZXJzQmVoYXZpb3IgeyBTdG9wQXRTdGFja2luZ0NvbnRl
eHRzLCBTdG9wQXRTdGFja2luZ0NvbnRhaW5lcnMgfTsKQEAgLTEwODIsNyArMTA5Niw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCB1c2VSZWdpb25CYXNlZENvbHVtbnMoKSBjb25zdDsKICAgICAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICAgIAotICAgIGJvb2wgaGFzQ29tcG9zaXRp
bmdEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQ7
IH0KICAgICB2b2lkIHNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudChib29sIGIpICB7IG1faGFz
Q29tcG9zaXRpbmdEZXNjZW5kYW50ID0gYjsgfQogICAgIAogICAgIGVudW0gSW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDlhYWI2NWYuLmFjOWQ3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC00OCwxMCArNDgsMTMgQEAK
ICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2lu
Y2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIK
ICNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVk
T2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtNDA4LDYg
KzQxMSw5IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9zaXRlZEJv
dW5kcygpIGNvbnN0CiAgICAgaWYgKGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5n
Q29tcG9zaXRlZFNjcm9sbGluZyhtX293bmluZ0xheWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisgICAgaWYgKG1fb3duaW5nTGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNz
TGF5ZXJzVW5kZXJSZWdpb25zKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC02NDQsNiArNjUwLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgSW50UmVjdCByZWxhdGl2ZUNvbXBv
c2l0aW5nQm91bmRzKGxvY2FsQ29tcG9zaXRpbmdCb3VuZHMpOwogICAgIHJlbGF0aXZlQ29tcG9z
aXRpbmdCb3VuZHMubW92ZUJ5KGRlbHRhKTsKIAorICAgIGFkanVzdEFuY2VzdG9yQ29tcG9zaXRp
bmdCb3VuZHNGb3JGbG93VGhyZWFkKGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbXBBbmNl
c3Rvcik7CisKICAgICBJbnRQb2ludCBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb247CiAgICAg
aWYgKGNvbXBBbmNlc3RvciAmJiBjb21wQW5jZXN0b3ItPmJhY2tpbmcoKS0+aGFzQ2xpcHBpbmdM
YXllcigpKSB7CiAgICAgICAgIC8vIElmIHRoZSBjb21wb3NpdGluZyBhbmNlc3RvciBoYXMgYSBs
YXllciB0byBjbGlwIGNoaWxkcmVuLCB3ZSBwYXJlbnQgaW4gdGhhdCwgYW5kIHRoZXJlZm9yZQpA
QCAtODQxLDYgKzg0OSw0MiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhp
Y3NMYXllckdlb21ldHJ5KCkKICAgICByZWdpc3RlclNjcm9sbGluZ0xheWVycygpOwogfQogCit2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6YWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0Zv
ckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3QgUmVu
ZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCFtX293bmlu
Z0xheWVyLmlzSW5zaWRlRmxvd1RocmVhZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5k
ZXJMYXllciogZmxvd1RocmVhZExheWVyID0gbV9vd25pbmdMYXllci5pc0luc2lkZU91dE9mRmxv
d1RocmVhZCgpID8gbV9vd25pbmdMYXllci5zdGFja2luZ0NvbnRhaW5lcigpIDogbV9vd25pbmdM
YXllci5lbmNsb3NpbmdGbG93VGhyZWFkQW5jZXN0b3IoKTsKKyAgICBpZiAoZmxvd1RocmVhZExh
eWVyICYmIGZsb3dUaHJlYWRMYXllci0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAgICAg
UmVuZGVyRmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRvUmVuZGVyRmxvd1RocmVhZChmbG93VGhy
ZWFkTGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICBpZiAobV9vd25pbmdMYXllci5pc0Zsb3dU
aHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkgeworICAgICAgICAg
ICAgLy8gVGhlIFJlbmRlck5hbWVkRmxvd1RocmVhZCBpcyBub3QgY29tcG9zaXRlZCwgYXMgd2Ug
bmVlZCBpdCB0byBwYWludCB0aGUgCisgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kIGxheWVyIG9m
IHRoZSByZWdpb25zLiBXZSBuZWVkIHRvIGNvbXBlbnNhdGUgZm9yIHRoYXQgYnkgbWFudWFsbHkK
KyAgICAgICAgICAgIC8vIHN1YnRyYWN0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvdy10aHJl
YWQuCisgICAgICAgICAgICBJbnRQb2ludCBmbG93UG9zaXRpb247CisgICAgICAgICAgICBmbG93
VGhyZWFkTGF5ZXItPmNvbnZlcnRUb1BpeGVsU25hcHBlZExheWVyQ29vcmRzKGNvbXBvc2l0aW5n
QW5jZXN0b3IsIGZsb3dQb3NpdGlvbik7CisgICAgICAgICAgICBhbmNlc3RvckNvbXBvc2l0aW5n
Qm91bmRzLm1vdmVCeShmbG93UG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW92
ZSB0aGUgYW5jZXN0b3IgcG9zaXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgcmVnaW9uIHdoZXJlIHRo
ZSBjb21wb3NpdGVkIGxheWVyIGlzIGdvaW5nIHRvIGRpc3BsYXkuCisgICAgICAgIFJlbmRlck5h
bWVkRmxvd0ZyYWdtZW50KiBwYXJlbnRSZWdpb24gPSBmbG93VGhyZWFkLmNhY2hlZFJlZ2lvbkZv
ckNvbXBvc2l0ZWRMYXllcihtX293bmluZ0xheWVyKTsKKyAgICAgICAgaWYgKHBhcmVudFJlZ2lv
bikgeworICAgICAgICAgICAgSW50UG9pbnQgZmxvd0RlbHRhOworICAgICAgICAgICAgbV9vd25p
bmdMYXllci5jb252ZXJ0VG9QaXhlbFNuYXBwZWRMYXllckNvb3JkcyhmbG93VGhyZWFkTGF5ZXIs
IGZsb3dEZWx0YSk7CisgICAgICAgICAgICBwYXJlbnRSZWdpb24tPmFkanVzdFJlZ2lvbkJvdW5k
c0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoZmxvd0RlbHRhLCBhbmNlc3RvckNvbXBvc2l0aW5n
Qm91bmRzKTsKKyAgICAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBsYXllck93bmVyID0g
dG9SZW5kZXJCb3hNb2RlbE9iamVjdChwYXJlbnRSZWdpb24tPmxheWVyT3duZXIoKSk7CisgICAg
ICAgICAgICBpZiAobGF5ZXJPd25lci0+aGFzTGF5ZXIoKSAmJiBsYXllck93bmVyLT5sYXllcigp
LT5iYWNraW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVn
aW9uIHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hh
ZG93cyB0byBsYXllcnMgaW5zaWRlIGl0LgorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0
aGUgY29tcG9zaXRlZCBib3VuZHMgb2YgdGhlIFJlbmRlclJlZ2lvbiBhcmUgYWxyZWFkeSBjYWxj
dWxhdGVkCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSB3aWxsIG9ubHkKKyAgICAgICAgICAgICAgICAv
LyBpdGVyYXRlIG9uIHRoZSBjb250ZW50IG9mIHRoZSByZWdpb24gYWZ0ZXIgdGhlIHJlZ2lvbiBp
dHNlbGYgaXMgY29tcHV0ZWQuCisgICAgICAgICAgICAgICAgYW5jZXN0b3JDb21wb3NpdGluZ0Jv
dW5kcy5tb3ZlQnkocm91bmRlZEludFBvaW50KGxheWVyT3duZXItPmxheWVyKCktPmJhY2tpbmco
KS0+Y29tcG9zaXRlZEJvdW5kcygpLmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBhbmNl
c3RvckNvbXBvc2l0aW5nQm91bmRzLm1vdmUoLWxheWVyT3duZXItPmJvcmRlckFuZFBhZGRpbmdT
dGFydCgpLCAtbGF5ZXJPd25lci0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZURpcmVjdGx5Q29tcG9zaXRlZENvbnRlbnRzKGJvb2wgaXNTaW1wbGVDb250YWluZXIsIGJv
b2wmIGRpZFVwZGF0ZUNvbnRlbnRzUmVjdCkKIHsKICAgICBpZiAoIW1fb3duaW5nTGF5ZXIuaGFz
VmlzaWJsZUNvbnRlbnQoKSkKQEAgLTE1NzAsNyArMTYxNCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjppc1NpbXBsZUNvbnRhaW5lckNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogICAgIGlm
IChwYWludHNCb3hEZWNvcmF0aW9ucygpIHx8IHBhaW50c0NoaWxkcmVuKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyUmVnaW9uKCkpCisgICAg
aWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVuZGVyZXIoKS5pc1JlbmRlclZpZXcoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4
IDlmNTNmMzIuLjM2ZDJmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKQEAgLTI3OCw2ICsyNzgsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBw
YWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlKTsKIAorICAgIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdXBkYXRlR3JhcGhp
Y3NMYXllckdlb21ldHJ5LgorICAgIHZvaWQgYWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5k
c0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3Qg
UmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0OworCiAgICAgc3RhdGljIENT
U1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlE
KTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlEIGNzc1RvR3JhcGhpY3NMYXllclByb3Bl
cnR5KENTU1Byb3BlcnR5SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGUwMTUzNmQuLmQxYTBkOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBA
IC00NiwxMCArNDYsMTIgQEAKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlckZs
b3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTkzMSw4ICs5MzMsMTEgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXll
ciogYW5jZXN0b3IKICAgICBsYXllci51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsK
ICAgICBsYXllci51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsKIAotICAgIGlmIChsYXllci5p
c091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICBpZiAobGF5ZXIuaXNGbG93VGhyZWFk
Q29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAgICAgICAgUmVuZGVy
Rmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRvUmVuZGVyRmxvd1RocmVhZChsYXllci5yZW5kZXJl
cigpKTsKKyAgICAgICAgbGF5ZXIuc2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGZsb3dUaHJl
YWQuaGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkpOwogICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgaWYgKG92ZXJsYXBNYXApCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5
TWFwKCkucHVzaE1hcHBpbmdzVG9BbmNlc3RvcigmbGF5ZXIsIGFuY2VzdG9yTGF5ZXIpOwpAQCAt
MTAxMyw2ICsxMDE4LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1JlbmRlck5h
bWVkRmxvd0ZyYWdtZW50Q29udGFpbmVyKCkpIHsKKyAgICAgICAgLy8gV2UgYXJlIGdvaW5nIHRv
IGNvbGxlY3QgbGF5ZXJzIGZyb20gdGhlIFJlbmRlckZsb3dUaHJlYWQgaW50byB0aGUgR3JhcGhp
Y3NMYXllciBvZiB0aGUgcGFyZW50IG9mIHRoZQorICAgICAgICAvLyBhbm9ueW1vdXMgUmVuZGVy
UmVnaW9uLCBidXQgZmlyc3Qgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFyZW50IGl0
c2VsZiBvZiB0aGUgcmVnaW9uIGlzIGdvaW5nIHRvCisgICAgICAgIC8vIGhhdmUgYSBjb21wb3Np
dGVkIGxheWVyLiBXZSBvbmx5IHdhbnQgdG8gbWFrZSByZWdpb25zIGNvbXBvc2l0ZWQgd2hlbiB0
aGVyZSdzIGFuIGFjdHVhbCBsYXllciB0aGF0IHdlCisgICAgICAgIC8vIG5lZWQgdG8gbW92ZSB0
byB0aGF0IHJlZ2lvbi4KKyAgICAgICAgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1l
bnRzKHRvUmVuZGVyQmxvY2tGbG93KGxheWVyLnJlbmRlcmVyKCkpLnJlbmRlck5hbWVkRmxvd0Zy
YWdtZW50KCksIG92ZXJsYXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQsIGFueURlc2Nl
bmRhbnRIYXMzRFRyYW5zZm9ybSk7CisgICAgfQorCiAgICAgCiAgICAgaWYgKFZlY3RvcjxSZW5k
ZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOyBp
IDwgc2l6ZTsgKytpKQpAQCAtMTExNiw2ICsxMTMwLDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2Vz
dG9yCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0FuY2Vz
dG9yKGFuY2VzdG9yTGF5ZXIpOwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29t
cHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiByZWdpb24sIE92ZXJsYXBNYXAqIG92ZXJsYXBNYXAsIENvbXBvc2l0aW5nU3RhdGUmIGNoaWxk
U3RhdGUsIGJvb2wmIGxheWVyc0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRyYW5z
Zm9ybSkKK3sKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFkKCk7
CisgICAgCisgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5
TWFwKCkucHVzaFJlbmRlckZsb3dUaHJlYWQoZmxvd1RocmVhZCk7CisKKyAgICBpZiAoY29uc3Qg
UmVuZGVyTGF5ZXJMaXN0KiBsYXllckxpc3QgPSBmbG93VGhyZWFkLT5nZXRMYXllckxpc3RGb3JS
ZWdpb24ocmVnaW9uKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgbGlzdFNpemUgPSBs
YXllckxpc3QtPnNpemUoKTsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgIFJlbmRl
ckxheWVyJiBjdXJMYXllciA9ICpsYXllckxpc3QtPmF0KGkpOworICAgICAgICAgICAgQVNTRVJU
KGZsb3dUaHJlYWQtPnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihjdXJMYXllcikgPT0gcmVnaW9u
KTsKKyAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhmbG93VGhyZWFk
LT5sYXllcigpLCBjdXJMYXllciwgb3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwgbGF5ZXJzQ2hhbmdl
ZCwgYW55RGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChvdmVybGFwTWFwKQorICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnBvcE1h
cHBpbmdzVG9BbmNlc3RvcihyZWdpb24tPmxheWVyT3duZXIoKSk7Cit9CisKIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciYgY2hpbGRM
YXllciwgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyKQogewogICAgIEFTU0VSVCghcGFyZW50TGF5
ZXIgfHwgY2hpbGRMYXllci5hbmNlc3RvckNvbXBvc2l0aW5nTGF5ZXIoKSA9PSBwYXJlbnRMYXll
cik7CkBAIC0xMTU5LDcgKzExOTUsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVi
dWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgIC8v
IE5vdGUgdGhhdCB3ZSBjYW4gb25seSBkbyB3b3JrIGhlcmUgdGhhdCBpcyBpbmRlcGVuZGVudCBv
ZiB3aGV0aGVyIHRoZSBkZXNjZW5kYW50IGxheWVycwogICAgIC8vIGhhdmUgYmVlbiBwcm9jZXNz
ZWQuIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpIHdpbGwgYWxyZWFkeSBoYXZlIGRv
bmUgdGhlIHJlcGFpbnQgaWYgbmVjZXNzYXJ5LgogCi0gICAgaWYgKGxheWVyLmlzT3V0T2ZGbG93
UmVuZGVyRmxvd1RocmVhZCgpKQorICAgIC8vIERvIG5vdCBpdGVyYXRlIHRoZSBSZW5kZXJGbG93
VGhyZWFkIGRpcmVjdGx5LiBXZSBhcmUgZ29pbmcgdG8gY29sbGVjdCBjb21wb3NpdGVkIGxheWVy
cyBhcyBwYXJ0IG9mIHJlZ2lvbnMuCisgICAgaWYgKGxheWVyLmlzRmxvd1RocmVhZENvbGxlY3Rp
bmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICByZXR1cm47CiAgICAgCiAg
ICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBsYXllckJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CkBA
IC0xMjEwLDYgKzEyNDcsOSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENv
bXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgICAgICAgICAg
Y2hpbGRMaXN0LmFwcGVuZChsYXllckJhY2tpbmctPmZvcmVncm91bmRMYXllcigpKTsKICAgICB9
CiAKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29u
dGFpbmVyKCkpCisgICAgICAgIHJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZSh0b1Jl
bmRlckJsb2NrRmxvdyhsYXllci5yZW5kZXJlcigpKS5yZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgp
LCBsYXllckNoaWxkcmVuLCBkZXB0aCArIDEpOworCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXll
cio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOyBpIDwgc2l6
ZTsgKytpKQogICAgICAgICAgICAgcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKCpub3JtYWxG
bG93TGlzdC0+YXQoaSksIGNoaWxkTGlzdCwgZGVwdGggKyAxKTsKQEAgLTEyNTMsNiArMTI5Mywy
MiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJU
cmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudCogcmVnaW9uLCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExpc3Qs
IGludCBkZXB0aCkKK3sKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhy
ZWFkKCk7CisgICAgQVNTRVJUKGZsb3dUaHJlYWQtPmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRl
clJlZ2lvbnMoKSk7CisgICAgaWYgKGNvbnN0IFJlbmRlckxheWVyTGlzdCogbGF5ZXJMaXN0ID0g
Zmxvd1RocmVhZC0+Z2V0TGF5ZXJMaXN0Rm9yUmVnaW9uKHJlZ2lvbikpIHsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGF5ZXJMaXN0LT5zaXplKCk7IGkgPCBsaXN0U2l6
ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciYgY3VyTGF5ZXIgPSAqbGF5ZXJMaXN0
LT5hdChpKTsKKyAgICAgICAgICAgIEFTU0VSVChmbG93VGhyZWFkLT5yZWdpb25Gb3JDb21wb3Np
dGVkTGF5ZXIoY3VyTGF5ZXIpID09IHJlZ2lvbik7CisgICAgICAgICAgICByZWJ1aWxkQ29tcG9z
aXRpbmdMYXllclRyZWUoY3VyTGF5ZXIsIGNoaWxkTGlzdCwgZGVwdGggKyAxKTsKKyAgICAgICAg
fQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENo
YW5nZUxvY2F0aW9uKGNvbnN0IEludFBvaW50JiBjb250ZW50c09mZnNldCkKIHsKICAgICBpZiAo
bV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyKQpAQCAtMTc3MSw5ICsxODI3LDE5IEBAIGJvb2wg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29uc3QgUmVu
ZGVyTGF5ZXImIGxheWVyLCBSCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5CZUNv
bXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBXZSBkaXNhYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGZvciBlbGVtZW50cyBpbiBhIFJl
bmRlckZsb3dUaHJlYWQgYXMgaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgotICAgIC8vIFNlZSBo
dHRwOi8vd2Via2l0Lm9yZy9iLzg0OTAwIHRvIHJlLWVuYWJsZSBpdC4KLSAgICByZXR1cm4gbV9o
YXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nICYmIGxheWVyLmlzU2VsZlBhaW50aW5nTGF5ZXIoKSAm
JiBsYXllci5yZW5kZXJlcigpLmZsb3dUaHJlYWRTdGF0ZSgpID09IFJlbmRlckVsZW1lbnQ6Ok5v
dEluc2lkZUZsb3dUaHJlYWQ7CisgICAgaWYgKG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyAm
JiBsYXllci5pc1NlbGZQYWludGluZ0xheWVyKCkpIHsKKyAgICAgICAgaWYgKCFsYXllci5pc0lu
c2lkZUZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIC8v
IENTUyBSZWdpb25zIGZsb3cgdGhyZWFkcyBkbyBub3QgbmVlZCB0byBiZSBjb21wb3NpdGVkIGFz
IHdlIHVzZSBjb21wb3NpdGVkIFJlbmRlclJlZ2lvbnMKKyAgICAgICAgLy8gdG8gcmVuZGVyIHRo
ZSBiYWNrZ3JvdW5kIG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgorICAgICAgICBpZiAobGF5ZXIu
aXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgLy8gQSBmYXN0ZXIgd2F5IG9mIHNheWluZyBsYXllci5lbmNsb3NpbmdGbG93VGhyZWFkTGF5
ZXIoKS0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkK
KyAgICAgICAgcmV0dXJuIGxheWVyLmlzSW5zaWRlT3V0T2ZGbG93VGhyZWFkKCk7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVp
cmVzT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgUmVuZGVy
TGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3JMYXllciwgY29uc3QgSW50UmVjdCYgbGF5ZXJDb21w
b3NpdGVkQm91bmRzSW5BbmNlc3RvciwgY29uc3QgSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGVk
Qm91bmRzKSBjb25zdApAQCAtMjE1NCw4ICsyMjIwLDggQEAgYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihSZW5kZXJMYXllck1v
ZGUKICAgICBSZW5kZXJMYXllciYgbGF5ZXIgPSAqdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5k
ZXJlcikubGF5ZXIoKTsKIAogICAgIC8vIFdoZW4gYSBsYXllciBoYXMgY29tcG9zaXRlZCBkZXNj
ZW5kYW50cywgc29tZSBlZmZlY3RzLCBsaWtlIDJkIHRyYW5zZm9ybXMsIGZpbHRlcnMsIG1hc2tz
IGV0YyBtdXN0IGJlIGltcGxlbWVudGVkCi0gICAgLy8gdmlhIGNvbXBvc2l0aW5nIHNvIHRoYXQg
dGhleSBhbHNvIGFwcGx5IHRvIHRob3NlIGNvbXBvc2l0ZWQgZGVzY2RlbmRhbnRzLgotICAgIGlm
IChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgKGxheWVyLnRyYW5zZm9ybSgpIHx8IHJlbmRl
cmVyLmNyZWF0ZXNHcm91cCgpIHx8IHJlbmRlcmVyLmhhc1JlZmxlY3Rpb24oKSkpIHsKKyAgICAv
LyB2aWEgY29tcG9zaXRpbmcgc28gdGhhdCB0aGV5IGFsc28gYXBwbHkgdG8gdGhvc2UgY29tcG9z
aXRlZCBkZXNjZW5kYW50cy4KKyAgICBpZiAoaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzICYmIChs
YXllci50cmFuc2Zvcm0oKSB8fCByZW5kZXJlci5jcmVhdGVzR3JvdXAoKSB8fCByZW5kZXJlci5o
YXNSZWZsZWN0aW9uKCkgfHwgcmVuZGVyZXIuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRh
aW5lcigpKSkgewogICAgICAgICByZWFzb24gPSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3Np
dGluZ0ZvckdyYXBoaWNhbEVmZmVjdDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4
IDQ3NzYyYWIuLmU3ODNmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRml4ZWRQb3NpdGlv
blZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhp
Y3NMYXllclVwZGF0ZXI7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKK2NsYXNzIFJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50OwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBSZW5kZXJXaWRn
ZXQ7CiBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKQEAgLTE0MSw3ICsxNDIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gd2UgZGlzY292ZXIgdGhhdCBhbiBpZnJhbWUgaXMgb3ZlcmxhcHBlZCBkdXJp
bmcgcGFpbnRpbmcpLgogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7
CiAKLSAgICAvLyBVcGRhdGUgdGhlIG1hcHMgdGhhdCB3ZSB1c2UgdG8gZGlzdHJpYnV0ZSBsYXll
cnMgdG8gY29yZXNwb25kaW5nIFJlbmRlclJlZ2lvbnMuCisgICAgLy8gVXBkYXRlIHRoZSBtYXBz
IHRoYXQgd2UgdXNlIHRvIGRpc3RyaWJ1dGUgbGF5ZXJzIHRvIGNvcmVzcG9uZGluZyByZWdpb25z
LgogICAgIHZvaWQgdXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lmTmVlZGVkKCk7CiAgICAg
CiAgICAgLy8gVXBkYXRlIHRoZSBjb21wb3NpdGluZyBzdGF0ZSBvZiB0aGUgZ2l2ZW4gbGF5ZXIu
IFJldHVybnMgdHJ1ZSBpZiB0aGF0IHN0YXRlIGNoYW5nZWQuCkBAIC0zMjMsMTAgKzMyNCwxNiBA
QCBwcml2YXRlOgogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBsYXllcidzIGNvbXBvc2l0
aW5nIGNoYW5nZWQKICAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5k
ZXJMYXllciogYW5jZXN0b3JMYXllciwgUmVuZGVyTGF5ZXImLCBPdmVybGFwTWFwKiwgc3RydWN0
IENvbXBvc2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBkZXNjZW5kYW50
SGFzM0RUcmFuc2Zvcm0pOworCisgICAgdm9pZCBjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqLCBPdmVybGFwTWFwKiwgQ29tcG9zaXRp
bmdTdGF0ZSYsIGJvb2wmIGxheWVyc0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRy
YW5zZm9ybSk7CiAgICAgCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwgcGFyZW50aW5n
IGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFycmF5IG9m
IGNoaWxkIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIuCiAgICAgdm9p
ZCByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXImLCBWZWN0b3I8R3JhcGhp
Y3NMYXllcio+JiBjaGlsZEdyYXBoaWNzTGF5ZXJzT2ZFbmNsb3NpbmdMYXllciwgaW50IGRlcHRo
KTsKIAorICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIFJlbmRlckZsb3dUaHJlYWQgdHJlZSwgcGFy
ZW50aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFy
cmF5IG9mIGNoaWxkIAorICAgIC8vIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcg
bGF5ZXIgY29ycmVzcG9uZGluZyB0byB0aGUgYW5vbnltb3VzIHJlZ2lvbiAodGhhdCBiZWxvbmdz
IHRvIHRoZSByZWdpb24ncyBwYXJlbnQpLgorICAgIHZvaWQgcmVidWlsZFJlZ2lvbkNvbXBvc2l0
aW5nTGF5ZXJUcmVlKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiwgVmVjdG9yPEdyYXBoaWNzTGF5
ZXIqPiYgY2hpbGRMaXN0LCBpbnQgZGVwdGgpOworCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUg
dHJlZSwgdXBkYXRpbmcgbGF5ZXIgZ2VvbWV0cnkgb25seS4KICAgICB2b2lkIHVwZGF0ZUxheWVy
VHJlZUdlb21ldHJ5KFJlbmRlckxheWVyJiwgaW50IGRlcHRoKTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IGVhYTEy
ZjcuLjUwYTcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtblNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmNwcApAQCAtNTA4LDYgKzUwOCwzNiBAQCB2b2lkIFJlbmRlck11bHRpQ29s
dW1uU2V0Ojpjb2xsZWN0TGF5ZXJGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmIGZyYWdtZW50cywg
Y29ucwogICAgIH0KIH0KIAordm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6YWRqdXN0UmVnaW9u
Qm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZz
ZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykKK3sKKyAgICBMYXlvdXRVbml0IGxheWVyTG9naWNh
bFRvcCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsYXllck9mZnNldC55KCkgOiBsYXll
ck9mZnNldC54KCk7CisgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4gPSBjb2x1bW5JbmRleEF0T2Zm
c2V0KGxheWVyTG9naWNhbFRvcCk7CisgICAgCisgICAgTGF5b3V0VW5pdCBjb2xHYXAgPSBjb2x1
bW5HYXAoKTsKKyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVkQ29sdW1u
V2lkdGgoKTsKKyAgICAKKyAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uID0gZmxvd1Ro
cmVhZFBvcnRpb25SZWN0QXQoc3RhcnRDb2x1bW4pOworICAgIExheW91dFBvaW50IHRyYW5zbGF0
aW9uT2Zmc2V0OworCisgICAgTGF5b3V0VW5pdCBpbmxpbmVPZmZzZXQgPSBzdGFydENvbHVtbiAq
IChjb2xMb2dpY2FsV2lkdGggKyBjb2xHYXApOworICAgIGlmICghc3R5bGUoKS0+aXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpKQorICAgICAgICBpbmxpbmVPZmZzZXQgPSAtaW5saW5lT2Zmc2V0Owor
ICAgIHRyYW5zbGF0aW9uT2Zmc2V0LnNldFgoaW5saW5lT2Zmc2V0KTsKKyAgICAgICAgCisgICAg
TGF5b3V0VW5pdCBibG9ja09mZnNldCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyAtZmxv
d1RocmVhZFBvcnRpb24ueSgpIDogLWZsb3dUaHJlYWRQb3J0aW9uLngoKTsKKyAgICBpZiAoaXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkpCisgICAgICAg
IGJsb2NrT2Zmc2V0ID0gLWJsb2NrT2Zmc2V0OworICAgIHRyYW5zbGF0aW9uT2Zmc2V0LnNldFko
YmxvY2tPZmZzZXQpOworICAgIAorICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
KyAgICAgICAgdHJhbnNsYXRpb25PZmZzZXQgPSB0cmFuc2xhdGlvbk9mZnNldC50cmFuc3Bvc2Vk
UG9pbnQoKTsKKworICAgIC8vIEZJWE1FOiBUaGUgdHJhbnNsYXRpb24gbmVlZHMgdG8gaW5jbHVk
ZSB0aGUgbXVsdGljb2x1bW4gc2V0J3MgY29udGVudCBvZmZzZXQgd2l0aGluIHRoZQorICAgIC8v
IG11bHRpY29sdW1uIGJsb2NrIGFzIHdlbGwuIFRoaXMgd29uJ3QgYmUgYW4gaXNzdWUgdW50aWwg
d2Ugc3RhcnQgY3JlYXRpbmcgbXVsdGlwbGUgbXVsdGljb2x1bW4gc2V0cy4KKyAgICAKKyAgICBy
ZWdpb25Cb3VuZHMubW92ZUJ5KHJvdW5kZWRJbnRQb2ludCgtdHJhbnNsYXRpb25PZmZzZXQpKTsK
K30KKwogY29uc3QgY2hhciogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlbmRlck5hbWUoKSBjb25z
dAogeyAgICAKICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uU2V0IjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKaW5kZXggZGVmZmJkMS4u
Y2VhYjM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RMYXllckZyYWdtZW50cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IExheW91dFJlY3Qm
IGxheWVyQm91bmRpbmdCb3gsIGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkgT1ZFUlJJREU7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0
aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5k
cykgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dDsKICAgICAKICAgICB2b2lkIHBhaW50Q29sdW1uUnVsZXMoUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKaW5kZXggNjM1Mjc1MC4uMTdhZDY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgK
QEAgLTUxLDYgKzUxLDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQc2V1ZG9FbGVtZW50UmVn
aW9uKCkgY29uc3QgeyByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzUHNldWRvRWxlbWVu
dCgpOyB9CiAKKyAgICAvLyBXaGVuIHRoZSBjb250ZW50IGluc2lkZSB0aGUgcmVnaW9uIHJlcXVp
cmVzIHRoZSByZWdpb24gdG8gaGF2ZSBhIGxheWVyLCB0aGUgbGF5ZXIgd2lsbCBiZSBjcmVhdGVk
IG9uIHRoZSByZWdpb24ncworICAgIC8vIHBhcmVudCByZW5kZXJlciBpbnN0ZWFkLgorICAgIC8v
IFRoaXMgbWV0aG9kIHJldHVybnMgdGhhdCByZW5kZXJlciBob2xkaW5nIHRoZSBsYXllci4KKyAg
ICAvLyBUaGUgcmV0dXJuIHZhbHVlIG1heSBiZSBudWxsLgorICAgIFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGxheWVyT3duZXIoKSBjb25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+
aXNSZW5kZXJMYXllck1vZGVsT2JqZWN0KCkgPworICAgICAgICB0b1JlbmRlckxheWVyTW9kZWxP
YmplY3QocGFyZW50KCkpIDogbnVsbHB0cjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDJmMjYw
YWIuLjU4MmY2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1lbnQm
IGRvY3VtZW50LCBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAgIDog
UmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCkKKyAgICAsIG1fZmxvd1RocmVhZENoaWxkTGlzdChh
ZG9wdFB0cihuZXcgRmxvd1RocmVhZENoaWxkTGlzdCgpKSkKICAgICAsIG1fb3ZlcnNldCh0cnVl
KQogICAgICwgbV9uYW1lZEZsb3cobmFtZWRGbG93KQogICAgICwgbV9yZWdpb25MYXlvdXRVcGRh
dGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50VGltZXJGaXJlZCkKQEAgLTk5LDggKzEwMCw4IEBAIHZvaWQgUmVuZGVyTmFtZWRG
bG93VGhyZWFkOjp1cGRhdGVXcml0aW5nTW9kZSgpCiAKIFJlbmRlck9iamVjdCogUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0g
ICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zsb3dUaHJlYWRD
aGlsZExpc3QuYmVnaW4oKTsKLSAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuZW5kKCk7CisgICAgRmxvd1RocmVhZENoaWxk
TGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmJlZ2luKCk7
CisgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhy
ZWFkQ2hpbGRMaXN0LT5lbmQoKTsKIAogICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAg
ICAgICAgUmVuZGVyT2JqZWN0KiBjaGlsZCA9ICppdDsKQEAgLTExNSwxMSArMTE2LDExIEBAIFJl
bmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2RlKE5v
ZGUqIG5vZGUpIGNvbnN0CiAKIFJlbmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpw
cmV2aW91c1JlbmRlcmVyRm9yTm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIGlmIChtX2Zs
b3dUaHJlYWRDaGlsZExpc3QuaXNFbXB0eSgpKQorICAgIGlmIChtX2Zsb3dUaHJlYWRDaGlsZExp
c3QtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBGbG93VGhyZWFkQ2hpbGRM
aXN0Ojpjb25zdF9pdGVyYXRvciBiZWdpbiA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC5iZWdpbigp
OwotICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fZmxvd1Ro
cmVhZENoaWxkTGlzdC5lbmQoKTsKKyAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVy
YXRvciBiZWdpbiA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC0+YmVnaW4oKTsKKyAgICBGbG93VGhy
ZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3Qt
PmVuZCgpOwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZW5k
OwogCiAgICAgZG8gewpAQCAtMTQ5LDE0ICsxNTAsMTQgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmFkZEZsb3dDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkKQogCiAgICAgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCA9IG5leHRSZW5kZXJlckZvck5vZGUoY2hpbGROb2RlKTsKICAg
ICBpZiAoYmVmb3JlQ2hpbGQpCi0gICAgICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC5pbnNlcnRC
ZWZvcmUoYmVmb3JlQ2hpbGQsIG5ld0NoaWxkKTsKKyAgICAgICAgbV9mbG93VGhyZWFkQ2hpbGRM
aXN0LT5pbnNlcnRCZWZvcmUoYmVmb3JlQ2hpbGQsIG5ld0NoaWxkKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC5hZGQobmV3Q2hpbGQpOworICAgICAgICBtX2Zsb3dU
aHJlYWRDaGlsZExpc3QtPmFkZChuZXdDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAgICBtX2Zs
b3dUaHJlYWRDaGlsZExpc3QucmVtb3ZlKGNoaWxkKTsKKyAgICBtX2Zsb3dUaHJlYWRDaGlsZExp
c3QtPnJlbW92ZShjaGlsZCk7CiB9CiAKIGJvb2wgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkZXBl
bmRzT24oUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNvbnN0
CkBAIC03MjcsNCArNzI4LDE1IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpnZXRSYW5n
ZXMoVmVjdG9yPFJlZlB0cjxSYW5nZT4gPiYgcmFuZ2VPYmplY3RzLCBjb25zCiAgICAgfQogfQog
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAoreworICAg
IC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMgZm9yIG5hbWVkIGZsb3cg
dGhyZWFkcy4KKyAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFkcyBhcmUgZGlzcGxheWVkIG9uIHRv
cCBvZiB0aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUKKyAgICAvLyBkaXN0cmlidXRpbmcg
dGhlIGxheWVycy4KKworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCBiMTAy
ZmYyLi43MmRmYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5h
bWVkRmxvd1RocmVhZC5oCkBAIC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
Rmxvd0NoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQpOwogICAgIHZvaWQgcmVtb3ZlRmxvd0No
aWxkKFJlbmRlck9iamVjdCopOwotICAgIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVy
biAhbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ2hpbGRy
ZW4oKSBjb25zdCB7IHJldHVybiAhbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5pc0VtcHR5KCk7IH0K
ICNpZm5kZWYgTkRFQlVHCi0gICAgYm9vbCBoYXNDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSBj
b25zdCB7IHJldHVybiBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuY29udGFpbnMoY2hpbGQpOyB9Cisg
ICAgYm9vbCBoYXNDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBtX2Zs
b3dUaHJlYWRDaGlsZExpc3QtPmNvbnRhaW5zKGNoaWxkKTsgfQogI2VuZGlmCiAKICAgICB2b2lk
IHB1c2hEZXBlbmRlbmNpZXMoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCYpOwpAQCAtODAsNiAr
ODAsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNNYXJrZWRGb3JEZXN0cnVjdGlvbigpIGNvbnN0
OwogICAgIHZvaWQgZ2V0UmFuZ2VzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+ID4mLCBjb25zdCBSZW5k
ZXJSZWdpb24qKSBjb25zdDsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICB2aXJ0dWFsIGJvb2wgY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0
IE9WRVJSSURFOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE1hcmtGb3JEZXN0
cnVjdGlvbigpOwogICAgIHZvaWQgcmVzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24oKTsKQEAgLTExOSw3
ICsxMjMsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSG9sZHMgdGhlIHNvcnRlZCBjaGlsZHJlbiBv
ZiBhIG5hbWVkIGZsb3cuIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHdlIGNhbiBnZXQgdGhlIG9yZGVy
aW5nIHJpZ2h0LgogICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gRmxvd1Ro
cmVhZENoaWxkTGlzdDsKLSAgICBGbG93VGhyZWFkQ2hpbGRMaXN0IG1fZmxvd1RocmVhZENoaWxk
TGlzdDsKKyAgICBPd25QdHI8Rmxvd1RocmVhZENoaWxkTGlzdD4gbV9mbG93VGhyZWFkQ2hpbGRM
aXN0OwogCiAgICAgTmFtZWRGbG93Q29udGVudEVsZW1lbnRzIG1fY29udGVudEVsZW1lbnRzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IGVkOWQyNDIu
LmEzMWU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCkBA
IC03MzAsNiArNzMwLDE2IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjp1cGRhdGVMb2dpY2FsSGVpZ2h0
KCkKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyUmVnaW9uOjphZGp1c3RSZWdpb25Cb3VuZHNGcm9t
Rmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IEludFBvaW50JiBsYXllck9mZnNldCwgSW50UmVj
dCYgcmVnaW9uQm91bmRzKQoreworICAgIExheW91dFJlY3QgZmxpcHBlZEZsb3dUaHJlYWRQb3J0
aW9uUmVjdCA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOworICAgIGZsb3dUaHJlYWQoKS0+Zmxp
cEZvcldyaXRpbmdNb2RlKGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QpOworICAgIHJlZ2lv
bkJvdW5kcy5tb3ZlQnkocm91bmRlZEludFBvaW50KGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJl
Y3QubG9jYXRpb24oKSkpOworCisgICAgVU5VU0VEX1BBUkFNKGxheWVyT2Zmc2V0KTsKK30KKwor
CiBSZW5kZXJPdmVyZmxvdyogUmVuZGVyUmVnaW9uOjplbnN1cmVPdmVyZmxvd0ZvckJveChjb25z
dCBSZW5kZXJCb3gqIGJveCkKIHsKICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBib3hJbmZvID0g
cmVuZGVyQm94UmVnaW9uSW5mbyhib3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oCmluZGV4IDc3YmNmZTAuLjVjZDk0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmgKQEAgLTEzNyw2ICsxMzcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0
UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RS
ZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IEludFBvaW50JiBsYXll
ck9mZnNldCwgSW50UmVjdCYgcmVnaW9uQm91bmRzKTsgLy8gbGF5ZXJPZmZzZXQgaXMgbmVlZGVk
IGZvciBtdWx0aS1jb2x1bW4uCisKICAgICB2b2lkIGFkZExheW91dE92ZXJmbG93Rm9yQm94KGNv
bnN0IFJlbmRlckJveCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGFkZFZpc3VhbE92
ZXJmbG93Rm9yQm94KGNvbnN0IFJlbmRlckJveCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICBM
YXlvdXRSZWN0IGxheW91dE92ZXJmbG93UmVjdEZvckJveChjb25zdCBSZW5kZXJCb3gqKTsKQEAg
LTI0NSw4ICsyNDcsMjEgQEAgaW5saW5lIGNvbnN0IFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdp
b24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclJlZ2lvbio+KG9iamVjdCk7CiB9CiAKK2lubGluZSBSZW5kZXJSZWdpb24mIHRv
UmVuZGVyUmVnaW9uKFJlbmRlck9iamVjdCYgb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlclJlZ2lvbigpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVuZGVyUmVnaW9uJj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNvbnN0IFJl
bmRlclJlZ2lvbiYgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCit7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyUmVn
aW9uKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSZWdpb24mPihvYmpl
Y3QpOworfQorCiAvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5
IGNhc3QuCiB2b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlclJlZ2lvbiopOwordm9pZCB0
b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJSZWdpb24mKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAK
aW5kZXggMmI2ZjA5My4uYWMzNDE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNzc3LDE4ICs3NzcsMjIgQEAgc3RhdGljIHZvaWQgd3Jp
dGVMYXllcnMoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJl
bmRlckxheWUKICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc0xpc3QgPSBsLT5wb3Na
T3JkZXJMaXN0KCkpIHsKICAgICAgICAgc2l6ZV90IGxheWVyQ291bnQgPSAwOwogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKQotICAgICAgICAg
ICAgaWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisg
ICAgICAgICAgICBpZiAoIXBvc0xpc3QtPmF0KGkpLT5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3Jh
cGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKICAgICAgICAgICAgICAgICArK2xheWVyQ291bnQ7
CiAgICAgICAgIGlmIChsYXllckNvdW50KSB7CiAgICAgICAgICAgICBpbnQgY3VyckluZGVudCA9
IGluZGVudDsKLSAgICAgICAgICAgIGlmIChiZWhhdmlvciAmIFJlbmRlckFzVGV4dFNob3dMYXll
ck5lc3RpbmcpIHsKLSAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKLSAg
ICAgICAgICAgICAgICB0cyA8PCAiIHBvc2l0aXZlIHotb3JkZXIgbGlzdCgiIDw8IGxheWVyQ291
bnQgPDwgIilcbiI7Ci0gICAgICAgICAgICAgICAgKytjdXJySW5kZW50OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBwb3NMaXN0LT5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgICAgIGlmICghcG9zTGlzdC0+YXQoaSktPmlzT3V0T2ZGbG93
UmVuZGVyRmxvd1RocmVhZCgpKQotICAgICAgICAgICAgICAgICAgICB3cml0ZUxheWVycyh0cywg
cm9vdExheWVyLCBwb3NMaXN0LT5hdChpKSwgcGFpbnREaXJ0eVJlY3QsIGN1cnJJbmRlbnQsIGJl
aGF2aW9yKTsKKyAgICAgICAgICAgIC8vIFdlIG9ubHkgcHJpbnQgdGhlIGhlYWRlciBpZiB0aGVy
ZSdzIGF0IGxpc3QgYSBub24tUmVuZGVyTmFtZWRGbG93VGhyZWFkIHBhcnQgb2YgdGhlIGxpc3Qu
CisgICAgICAgICAgICBpZiAoIXBvc0xpc3QtPnNpemUoKSB8fCAhcG9zTGlzdC0+YXQoMCktPmlz
Rmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xheWVyTmVzdGluZykg
eworICAgICAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgdHMgPDwgIiBwb3NpdGl2ZSB6LW9yZGVyIGxpc3QoIiA8PCBwb3NMaXN0LT5z
aXplKCkgPDwgIilcbiI7CisgICAgICAgICAgICAgICAgICAgICsrY3VyckluZGVudDsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBw
b3NMaXN0LT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgcHJp
bnQgbmFtZWQgZmxvd3MgdHdpY2UuCisgICAgICAgICAgICAgICAgICAgIGlmICghcG9zTGlzdC0+
YXQoaSktPmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygp
KQorICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVMYXllcnModHMsIHJvb3RMYXllciwgcG9z
TGlzdC0+YXQoaSksIHBhaW50RGlydHlSZWN0LCBjdXJySW5kZW50LCBiZWhhdmlvcik7CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>
<flag name="commit-queue"
          id="237141"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214583</attachid>
            <date>2013-10-18 09:46:36 -0700</date>
            <delta_ts>2013-10-19 21:54:20 -0700</delta_ts>
            <desc>patch that fixes the failing test</desc>
            <filename>patch120457CollectLayersAnonymous.diff</filename>
            <type>text/plain</type>
            <size>104502</size>
            <attacher name="Mihai Maerean">mmaerean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZjUyN2ZkLi45N2Y1Y2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTMtMTAt
MTggIE1paGFpIE1hZXJlYW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zv
cm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zv
cm1lZC1jaGlsZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lv
bi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGlu
Zy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVh
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Jl
Z2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12
aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5z
aWRlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Ry
YW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29t
cG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVs
dGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0
bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50
aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0xMC0xOCAgSmlud29vIFNvbmcgIDxqaW53b283LnNv
bmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwgZ2FyZGVuaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0t
aW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVn
aW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTc3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVn
aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVy
cyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdp
b25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1m
b250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtp
dC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkuY29u
dGVudCB7CisJCQl9CisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVa
KDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24q
LworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0PgorCQkJd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoICJsb2FkIiwgZnVuY3Rpb24gKCkgeworCQkJCXZhciBkaXYgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIjdHJhbnNmb3JtZWQiKTsKKwkJCQlmb3IodmFyIGkgPSAwOyBpIDwgMTA7ICsraSAp
IHsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJ0cmFuc2Zvcm1lZCBjb250ZW50IjsKKwkJCQkJZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAiY29udGVudCI7CisJ
CQkJCWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJCX0KKwkJCX0sIGZhbHNlKTsKKwkJPC9z
Y3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9
InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBp
ZD0idHJhbnNmb3JtZWQiIGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBj
b250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250
ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCTxkaXY+VGVzdCBQQVNT
RVMgaWYgaXQgZG9lc24ndCBjcmFzaCBvciBhc3NlcnQ8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMWUzZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2NyYXNoLXRyYW5z
Zm9ybS1pbnNpZGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhl
IGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRo
ZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdl
YmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJ
CQkuY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86dGhlRmxvdzsKKwkJCX0KKwkJCS5y
ZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOnRoZUZsb3c7CisJCQl9CisJCTwvc3R5bGU+
CisJCTxzY3JpcHQ+CisJCQl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggImxvYWQiLCBmdW5jdGlv
biAoKSB7CisJCQkJdmFyIGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0cmFuc2Zvcm1l
ZCIpOworCQkJCWZvcih2YXIgaSA9IDA7IGkgPCAxMDsgKytpICkgeworCQkJCQlkaXYuY2xhc3NO
YW1lID0gInRyYW5zZm9ybWVkIGNvbnRlbnQiOworCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKKwkJCQkJZGl2LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CisJCQkJfQorCQkJfSwgZmFsc2UpOworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxkaXYgaWQ9InRyYW5zZm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVu
dCI+dHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xh
c3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRp
diBjbGFzcz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBj
bGFzcz0icmVnaW9uIj48L2Rpdj4KKwkJPGRpdj5UZXN0IFBBU1NFUyBpZiBpdCBkb2Vzbid0IGNy
YXNoIG9yIGFzc2VydDwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zs
b2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zvcm1l
ZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjRmYzk3NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDU3IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4K
KwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsK
KwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJfQorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS5y
ZWdpb24geworCQkJCWRpc3BsYXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7CisJ
CQkJd2lkdGg6IDIxMHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogI2VlZTsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBk
aXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJfQorCQkJLnRleHQg
eworCQkJCXdpZHRoOiA2MDBweDsKKwkJCX0KKwkJCSogeworCQkJCWJvcmRlcjpzb2xpZCAxcHgg
Izg4ODsKKwkJCQlwYWRkaW5nOiAycHg7CisJCQkJbWFyZ2luOiAzcHg7CisJCQl9CisJCTwvc3R5
bGU+CisJCTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtdGVzdGluZy5qcyI+PC9zY3Jp
cHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4K
KworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCQkJ
ZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCQl0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0KKworCQkJd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2
aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlkZW8sICcuLi8uLi9tZWRpYS9jb250ZW50L2Nv
dW50aW5nJywgbnVsbCwgdGVzdERvbmUpOworCQkJfTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFkPgor
CTxib2R5PgorCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij4KKwkJCUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBh
bWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBNb2xsaXRpYSwgY3VwaWRpdGF0ZSwg
cG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3JydXB0aSBzdXNjaXBpdCB0ZW1wb3Jh
IGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1dGEgcmVwZWxsYXQgcGVyc3BpY2lh
dGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFnbmkgYSB2b2x1cHRhcyBtYXhpbWUg
b2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIAorCQkJPGRpdiBjbGFzcz0icmVnaW9uIj4K
KwkJCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5Mb25nIHRleHQgaW5zaWRlIHRoZSByZWdpb248L2Rp
dj4KKwkJCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiIGhlaWdodD0iMTAwIiB3
aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJCQk8ZGl2IGNsYXNzPSJj
b250ZW50IHRyYW5zZm9ybWVkIj5Mb25nIHRleHQgaW5zaWRlIHRoZSByZWdpb248L2Rpdj4KKwkJ
CTwvZGl2PgorCQkJIEV0LCBhZCBzaXQgcHJhZXNlbnRpdW0gcmVjdXNhbmRhZSBvbW5pcyByZWlj
aWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJvIHJlcHJlaGVuZGVyaXQgZW5pbSBt
aW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVnaWF0IGl1cmUgc29sdXRhIG1pbmlt
YSBzdXNjaXBpdC48L2Rpdj4KKwkJPGRpdiBjbGFzcz0idGV4dCI+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0
YXRlLCBwb3JybywgZGlnbmlzc2ltb3MgZnVnYSBpbXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRl
bXBvcmEgZWFydW0gb2RpdCBhc3BlcmlvcmVzIHF1aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJz
cGljaWF0aXMgaXN0ZSBldCB2b2x1cHRhdGVtIG1vbGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1h
eGltZSBvZmZpY2lpcyBpdXN0byBkb2xvciB1dCBkaWN0YS4gRXQsIGFkIHNpdCBwcmFlc2VudGl1
bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNpZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50aXVtIHZl
cm8gcmVwcmVoZW5kZXJpdCBlbmltIG1pbnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1heGltZSBm
dWdpYXQgaXVyZSBzb2x1dGEgbWluaW1hIHN1c2NpcGl0LjwvZGl2PgorCTwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0
aC10cmFuc2Zvcm1lZC1jaGlsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk4NjFlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4KKwkJPHN0
eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0K
KworCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiB0aGVGbG93OworCQkJfQor
CQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSBy
b3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9t
OiB0aGVGbG93OworCQkJCWRpc3BsYXk6IGlubGluZS1ibG9jazsKKwkJCQlmbG9hdDogcmlnaHQ7
CisJCQkJd2lkdGg6IDIxMHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjogI2VlZTsKKwkJCX0KKwkJCS50ZXh0IHsKKwkJCQl3aWR0aDogNjAwcHg7CisJCQl9CisJ
CQkqIHsKKwkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJ
CW1hcmdpbjogM3B4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVk
aWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9
CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZp
ZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJ
CX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0idGV4dCI+
CisJCQlMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcg
ZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdhIGltcGVk
aXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMgcXVpYSBu
YW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0gbW9sZXN0
aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0IGRpY3Rh
LiAKKwkJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCQlFdCwgYWQgc2l0IHByYWVzZW50
aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0g
dmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMgcGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1l
IGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3VzY2lwaXQuCisJCTwvZGl2PgorCQk8ZGl2IGNs
YXNzPSJ0ZXh0Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
aWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdh
IGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMg
cXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0g
bW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0
IGRpY3RhLiBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRp
cyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMg
cGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3Vz
Y2lwaXQuPC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPkxvbmcgdGV4dCBpbnNpZGUgdGhl
IHJlZ2lvbjwvZGl2PgorCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiIGhlaWdo
dD0iMTAwIiB3aWR0aD0iOTYiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KKwkJPGRpdiBj
bGFzcz0iY29udGVudCB0cmFuc2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9k
aXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9u
ZS1yZWdpb24tdG8tYW5vdGhlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdhZTQxZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1m
cm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAK
KzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUg
bGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhl
IHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Vi
a2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkuY29udGVudCB7CisJCQkJd2lk
dGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVs
bG93OworCQkJfQorCisJCQlib2R5IC5yZWdpb246bnRoLWNoaWxkKDIpIC5jb250ZW50IHsKKwkJ
CQltYXJnaW4tdG9wOiAwcHg7IC8qbWFyZ2lucyBhcmUgY29sbGFwc2VkIHdoZW4gZnJhZ21lbnRl
ZCovCisJCQl9CisKKwkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIHsKKwkJCQloZWlnaHQ6
IDIyNXB4OworCQkJfQorCisJCQkjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJ
CS13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBv
c2l0ZWQqLworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dy
b3VuZC1jb2xvcjogTGltZTsKKwkJCX0KKworCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06dHJhbnNsYXRlWigxcHgpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBs
aWtlIHRoZSByZWdpb24qLworCQkJCWhlaWdodDogMjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFw
eCAjODg4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0
IDEuCisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9IndpbGxCZUFkZGVkVG9U
aGVGbG93IiBjbGFzcz0iY29udGVudCBtb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIj5nb2VzIGlu
IHRoZSAxc3QgcmVnaW9uLjwvZGl2PgorCQk8L2Rpdj4KKworCQlzb21lIHRleHQuCisKKwkJPGRp
diBjbGFzcz0icmVnaW9uIj4KKwkJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4
dCAyLgorCQkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQkJ
c29tZSB0ZXh0IDMuCisJCQkJPC9kaXY+CisJCQkJc29tZSB0ZXh0IDQuCisJCQkJPGRpdj5zb21l
IHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRl
eHQuPC9kaXY+CisJCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQk8L2Rpdj4KKwkJPC9kaXY+
CisKKwkJc29tZSB0ZXh0IDUuCisKKwkJPHA+SWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBm
cm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJz
IHJlYnVpbGQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSBy
aWdodCBsYXllcnMuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUt
bGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNmI0ODAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJvbS1v
bmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKKwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRv
OiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tn
cm91bmQtY29sb3I6IFllbGxvdzsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21w
b3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOworCQkJCXdp
ZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGlt
ZTsKKwkJCX0KKworCQkJLm1vdmVzVGhlTGF5ZXJUb05leHRSZWdpb24geworCQkJCWhlaWdodDog
MjI1cHg7CisJCQl9CisKKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93
OworCQkJCWhlaWdodDogMjMwcHg7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJfQor
CQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBj
bGFzcz0iY29udGVudCI+Z29lcyBpbiB0aGUgMXN0IHJlZ2lvbi48L2Rpdj4KKworCQk8ZGl2IGNs
YXNzPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCXNvbWUgdGV4dCAzLgorCQkJPC9kaXY+CisJCQlzb21l
IHRleHQgNC4KKwkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJPGRpdj5zb21lIHRleHQuPC9k
aXY+CisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KKwkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2Pgor
CQk8L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMSI+PC9kaXY+CisKKwkJc29t
ZSB0ZXh0LgorCisJCTxkaXYgY2xhc3M9InJlZ2lvbiIgaWQ9InIyIj48L2Rpdj4KKwkJc29tZSB0
ZXh0IDUuCisKKwkJPHA+SWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdp
b24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlciBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgdG8g
bWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMu
PC9wPgorCisJCTxzY3JpcHQ+CisJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZG8gdGhl
IGxheW91dC4KKwkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkgLmNvbnRlbnQ6Zmlyc3Qt
Y2hpbGQiKS5jbGFzc05hbWUgPSAiY29udGVudCBtb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIjsK
KwkJPC9zY3JpcHQ+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3Jk
ZXItcGFkZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQzOTBmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEy
MDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5
bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQor
CisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJ
CQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVw
eDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJI3JlZ2lv
biB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owor
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+
CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBp
ZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQiPgorCQkJCQlzb21lIHRleHQgMy4KKwkJCQk8L2Rpdj4KKwkJCQlz
b21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1h
a2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3Ms
IG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1i
b3JkZXItcGFkZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5n
LWZvci12aWRlby1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3Mzk5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3Itdmlk
ZW8tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRp
dGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRo
cmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRs
ZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9u
ZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQorCisJCQkjY29udGVudCB7
CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlw
YWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJ
CQl9CisKKwkJCSNyZWdpb24geworCQkJCXdpZHRoOiA5MCU7CisJCQkJYm9yZGVyOiBkb3VibGUg
M3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxp
bmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJ
bWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNy
Yz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25l
KCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIg
dmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlz
ZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRl
c3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0
ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlz
b21lIHRleHQgMi4KKwkJCQk8dmlkZW8gaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRl
byIgY29udHJvbHM+PC92aWRlbz4KKwkJCQlzb21lIHRleHQgNC4KKwkJCTwvZGl2PgorCQk8L2Rp
dj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFn
YXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZp
ZGVvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8u
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1i
b3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWZvci12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjBhZjEyODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXIt
cGFkZGluZy1mb3ItdmlkZW8uaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKwk8aGVhZD4K
KwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBm
bG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMu
PC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGlu
Zzogbm9uZTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworCQkJfQorCisJCQkjY29u
dGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJd2lkdGg6IDE1MHB4Owor
CQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1
cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNyZWdpb24gewor
CQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCXdpZHRoOiA5MCU7CisJCQkJYm9yZGVy
OiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4Owor
CQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5
cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCQk8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8
c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9u
IHRlc3REb25lKCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsK
KwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVsw
XTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycs
IG51bGwsIHRlc3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4K
KwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIuCisJ
CQk8dmlkZW8gaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92
aWRlbz4KKwkJCXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rp
dj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFn
YXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIHZp
ZGVvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ct
Ym9yZGVyLXBhZGRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
OGMzM2M4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9u
cy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbApAQCAtMCww
ICsxLDUxIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVn
aW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVk
IHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7
CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQg
eworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQlo
ZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5n
OiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisK
KwkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBw
eDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlw
YWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJ
CQl9CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJv
eC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3Jl
ZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91
YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46
IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5Pgor
CQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJ
CTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQlzb21lIHRleHQg
My4KKwkJCTwvZGl2PgorCQkJc29tZSB0ZXh0IDQuCisJCTwvZGl2PgorCQk8ZGl2IGlkPSJyZWdp
b24iPjwvZGl2PgorCQlzb21lIHRleHQgNS4KKwkJPHA+TWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lv
biBwcm9wYWdhdGVzIGl0cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRv
d3MgdG8gbGF5ZXJzIGluc2lkZSBpdC48L3A+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
Z2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5v
dGhlci1mbG93dGhyZWFkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2Q2NTBlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEy
MDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5
bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQor
CisJCQkuY29udGVudCB7CisJCQkJd2lkdGg6IDI1MHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJ
CQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVw
eDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtNjVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJI3JlZ2lv
biB7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1
cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiAyN3B4
IDE4cHggMjlweCAyMHB4OworCQkJfQorCisJCQkjb3V0dGVyUmVnaW9uIHsKKwkJCQlib3JkZXI6
IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBh
ZGRpbmc6IDdweCA4cHggOXB4IDEwcHg7CisJCQkJbWFyZ2luOiA4cHggOXB4IDEwcHggMTFweDsK
KwkJCX0KKworCQkJLmZvcmNlZFN0YWNraW5nQ29udGV4dCB7CisJCQkJcG9zaXRpb246IHJlbGF0
aXZlOworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJCS5ib3hTaGFkb3cgeworCQkJCWJveC1z
aGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJvdXR0ZXJSZWdpb24iIGNsYXNzPSJm
b3JjZWRTdGFja2luZ0NvbnRleHQgYm94U2hhZG93Ij4KKwkJCTxkaXYgY2xhc3M9Im91dHRlckZs
b3cgY29udGVudCBib3hTaGFkb3ciPjwvZGl2PgorCQkJPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0i
Zm9yY2VkU3RhY2tpbmdDb250ZXh0IGJveFNoYWRvdyI+CisJCQkJPGRpdiBjbGFzcz0iY29udGVu
dCI+CisJCQkJCXNvbWUgdGV4dCAyLgorCQkJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0Jl
Q29tcG9zaXRlZCIgY2xhc3M9ImJveFNoYWRvdyI+CisJCQkJCQlzb21lIHRleHQgMy4KKwkJCQkJ
PC9kaXY+CisJCQkJCXNvbWUgdGV4dCA0LgorCQkJCTwvZGl2PgorCQkJPC9kaXY+CisJCQk8ZGl2
IGNsYXNzPSJjb250ZW50IGJveFNoYWRvdyI+PC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQg
NS4KKwkJPHA+UmVuZGVyUmVnaW9ucyBtYXkgYmUgY29tcG9zaXRlZCBSZW5kZXJMYXllcnMgaW5z
aWRlIGFub3RoZXIgZmxvdyB0aHJlYWQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxv
d3RocmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMDU4NTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3JlZ2lv
bi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbApAQCAtMCwwICsxLDg2IEBACis8
aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxh
eWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSBy
ZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtp
dC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJLm91dHRlckZsb3cgeworCQkJCS13
ZWJraXQtZmxvdy1pbnRvOiBvdXR0ZXJGbG93OworCQkJfQorCisJCQkuaW5uZXJGbG93IHsKKwkJ
CQktd2Via2l0LWZsb3ctaW50bzogaW5uZXJGbG93OworCQkJfQorCisJCQkuY29udGVudCB7CisJ
CQkJd2lkdGg6IDI1MHB4OworCQkJCWhlaWdodDogMTEwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNw
eCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVk
IHsKKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjog
NXB4IDZweCA3cHggOHB4OworCQkJfQorCisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC02NXB4KTsKKwkJCX0KKwor
CQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZyb206IGlubmVyRmxvdzsKKwkJCQlib3Jk
ZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDI3cHggMThweCAyOXB4IDIw
cHg7CisJCQl9CisKKwkJCSNvdXR0ZXJSZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBv
dXR0ZXJGbG93OworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5lOiBk
b3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogN3B4IDhweCA5cHggMTBweDsKKwkJCQltYXJn
aW46IDhweCA5cHggMTBweCAxMXB4OworCQkJfQorCisJCQkuYm94U2hhZG93IHsKKwkJCQlib3gt
c2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgor
CTxib2R5PgorCQlzb21lIHRleHQgMS4KKworCQk8ZGl2IGlkPSJvdXR0ZXJSZWdpb24iIGNsYXNz
PSJib3hTaGFkb3ciPjwvZGl2PgorCisJCTxkaXYgY2xhc3M9Im91dHRlckZsb3cgY29udGVudCBi
b3hTaGFkb3ciPjwvZGl2PgorCisJCTxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9Im91dHRlckZsb3cg
Ym94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJpbm5lckZsb3cgY29udGVudCI+CisJ
CQlzb21lIHRleHQgMi4KKwkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVk
IiBjbGFzcz0iYm94U2hhZG93Ij4KKwkJCQlzb21lIHRleHQgMy4KKwkJCTwvZGl2PgorCQkJc29t
ZSB0ZXh0IDQuCisJCTwvZGl2PgorCisJCTxkaXYgY2xhc3M9Im91dHRlckZsb3cgY29udGVudCBi
b3hTaGFkb3ciPjwvZGl2PgorCisJCXNvbWUgdGV4dCA1LgorCisJCTxwPlJlbmRlclJlZ2lvbnMg
bWF5IGJlIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJzIGluc2lkZSBhbm90aGVyIGZsb3cgdGhyZWFk
LjwvcD4KKworCQk8c2NyaXB0PgorCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisJCQlkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCIjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQiKS5jbGFz
c05hbWUgKz0gIiB0cmFuc2Zvcm1lZCI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWlu
c2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lv
bnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZWVjNTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5z
Zm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAjPC90
aXRsZT4KKwkJPHN0eWxlPgorCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKKwkJCX0KKwkJCS50cmFuc3BhcmVudCB7
CisJCQkJb3BhY2l0eTogMC41OworCQkJfQorCQkJLnBvc2l0aW9uZWQgeworCQkJCXBvc2l0aW9u
OiByZWxhdGl2ZTsKKwkJCX0KKwkJCS5jb250ZW50IHsKKwkJCQl3aGl0ZS1zcGFjZTogbm93cmFw
OworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJd2lkdGg6MjAwcHg7CisJCQkJYm9yZGVyLWxlZnQt
d2lkdGg6IDVweDsKKwkJCQlib3JkZXItdG9wLXdpZHRoOiAxZW07CisJCQkJcGFkZGluZy1sZWZ0
OiA0JTsKKwkJCQlwYWRkaW5nLXRvcDogM3B0OworCQkJCW1hcmdpbjogMjBweDsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTpyb3RhdGVaKDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwg
anVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDog
MTsgLypTdGFja2luZyBDb250ZXh0LCBqdXN0IGxpa2UgdGhlIHJlZ2lvbiovCisJCQl9CisJCQkq
IHsKKwkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJCW1h
cmdpbjogM3B4OworCQkJfQorCQk8L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEv
bWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisK
KwkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVv
LCAnLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJCX07
CisJCTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0icmVnaW9uIj4K
KwkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InRyYW5zcGFyZW50IGNvbnRlbnQiPnRyYW5zcGFyZW50IGNv
bnRlbnQ8L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InBvc2l0aW9uZWQgY29udGVudCI+cG9zaXRpb25l
ZCBjb250ZW50PC9kaXY+CisJCQk8dmlkZW8gY2xhc3M9ImNvbnRlbnQiIGhlaWdodD0iMTUwIiB3
aWR0aD0iMjEwIiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQk8ZGl2IGNsYXNzPSJj
b250ZW50Ij5ub3QgdHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25l
ZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGE5ODc1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJh
bnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1
NiBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0bGU+CisJCTxzdHlsZT4K
KwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykg
cm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkudHJhbnNwYXJlbnQgeworCQkJCW9wYWNpdHk6IDAu
NTsKKwkJCX0KKwkJCS5wb3NpdGlvbmVkIHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9
CisJCQkuY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86dGhlRmxvdzsKKwkJCQl3aGl0
ZS1zcGFjZTogbm93cmFwOworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZy
b206dGhlRmxvdzsKKwkJCQl3aWR0aDoyMDBweDsKKwkJCQlib3JkZXItbGVmdC13aWR0aDogNXB4
OworCQkJCWJvcmRlci10b3Atd2lkdGg6IDFlbTsKKwkJCQlwYWRkaW5nLWxlZnQ6IDQlOworCQkJ
CXBhZGRpbmctdG9wOiAzcHQ7CisJCQkJbWFyZ2luOiAyMHB4OworCQkJfQorCQkJKiB7CisJCQkJ
Ym9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsKKwkJCQltYXJnaW46IDNw
eDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10
ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZp
bGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRl
c3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4u
L21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3Nj
cmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRl
bnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0idHJhbnNwYXJlbnQg
Y29udGVudCI+dHJhbnNwYXJlbnQgY29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJwb3NpdGlv
bmVkIGNvbnRlbnQiPnBvc2l0aW9uZWQgY29udGVudDwvZGl2PgorCQk8dmlkZW8gY2xhc3M9ImNv
bnRlbnQiIGhlaWdodD0iMTUwIiB3aWR0aD0iMjEwIiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlk
ZW8+CisJCTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+
CisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxh
eWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMmViYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zv
cm1lZC1sYXllci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorCTxoZWFk
PgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhl
IGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVy
cy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3Ro
aW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJ
CWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRp
bmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0K
KworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigt
MzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDog
NDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHgg
NnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJLmlubmVy
IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBDeWFuOworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJ
CQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpOyAvKnNvIHRoZSBkaXYgaXMgY29t
cG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJCWJveC1zaGFkb3c6IDJweCAycHgg
MTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdp
ZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7
CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJ
PGRpdiBpZD0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAy
LgorCQkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIj4KKwkJCQkJc29tZSB0ZXh0IDMuCisJCQkJ
CTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGlubmVyIj4KKwkJCQkJCXNvbWUgdGV4dCA0LgorCQkJ
CQk8L2Rpdj4KKwkJCQkJc29tZSB0ZXh0IDUuCisJCQkJPC9kaXY+CisJCQkJc29tZSB0ZXh0IDYu
CisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJCXNvbWUgdGV4dCA3LgorCQk8cD5SZW5kZXJpbmcgYSB0
cmFuc2Zvcm1lZCBsYXllciBpbnNpZGUgYW5vdGhlciB0cmFuc2Zvcm1lZCBsYXllci48L3A+CisJ
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRl
LXRyYW5zZm9ybWVkLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNTg3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10
cmFuc2Zvcm1lZC1sYXllci5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorCTxoZWFkPgor
CQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZs
b3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48
L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5n
OiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZs
b3c7CisJCQkJd2lkdGg6IDE1MHB4OworCQkJCWhlaWdodDogMTAwcHg7CisJCQkJYmFja2dyb3Vu
ZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJn
aW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJ
d2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDogNDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBM
aW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHgg
N3B4IDhweDsKKwkJCX0KKworCQkJLmlubmVyIHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBDeWFu
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJ
CQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4
IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6
IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFy
Z2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9k
eT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIu
CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCI+CisJCQkJc29tZSB0ZXh0IDMuCisJCQkJPGRp
diBjbGFzcz0idHJhbnNmb3JtZWQgaW5uZXIiPgorCQkJCQlzb21lIHRleHQgNC4KKwkJCQk8L2Rp
dj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQkJc29tZSB0ZXh0IDYuCisJCTwvZGl2
PgorCQk8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgorCQlzb21lIHRleHQgNy4KKwkJPHA+UmVuZGVy
aW5nIGEgdHJhbnNmb3JtZWQgbGF5ZXIgaW5zaWRlIGFub3RoZXIgdHJhbnNmb3JtZWQgbGF5ZXIu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRl
cmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVj
dGVkLmh0bWwKaW5kZXggOTQ0ODcxZi4uZDk5NDIzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGlu
Zy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Vi
a2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmctZXhwZWN0ZWQuaHRtbApAQCAtNSw3
ICs1LDggQEAKICAgICAucmVnaW9uewogICAgICAgICBoZWlnaHQ6NTBweDsKICAgICAgICAgd2lk
dGg6NTBweDsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4KKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEs
IDEsIDEpOy8qIEZvcmNlIGEgY29tcG9zaXRlZCBSZW5kZXJMYXllci4gKi8KICAgICB9CiA8L3N0
eWxlPgogPC9oZWFkPgpAQCAtMTMsOCArMTQsNyBAQAogPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0OTAwIj4gW0NTUyBSZWdpb25z
XSBFbmFibGUgYWNjZWxlcmF0ZWQgbGF5ZXJzIG9uIGVsZW1lbnRzIGluc2lkZSBhIFJlbmRlckZs
b3dUaHJlYWQ8L2E+LjwvcD4KIDxwPlRlc3QgdGhhdCBhbiBlbGVtZW50IHJlcXVpcmluZyBhIGNv
bXBvc2l0ZWQgbGF5ZXIsIGNvbGxlY3RlZCBpbiBhIGZsb3cgdGhyZWFkLCBpcyBkaXNwbGF5ZWQg
Y29ycmVjdGx5IGluc2lkZSBhIHJlZ2lvbi48L3A+CiA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxk
IG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KLTxkaXYgY2xhc3M9InJlZ2lvbiI+
Ci08L2Rpdj4KKzxkaXYgY2xhc3M9InJlZ2lvbiI+cmVnaW9uPC9kaXY+CiA8L2JvZHk+CiA8L2h0
bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0
LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRt
bAppbmRleCA0NTZlOTkyLi42M2FkMzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sCkBAIC0yNCw3ICsyNCw3IEBACiA8cD5UZXN0IGZvciA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ5MDAiPiBb
Q1NTIFJlZ2lvbnNdIEVuYWJsZSBhY2NlbGVyYXRlZCBsYXllcnMgb24gZWxlbWVudHMgaW5zaWRl
IGEgUmVuZGVyRmxvd1RocmVhZDwvYT4uPC9wPgogPHA+VGVzdCB0aGF0IGFuIGVsZW1lbnQgcmVx
dWlyaW5nIGEgY29tcG9zaXRlZCBsYXllciwgY29sbGVjdGVkIGluIGEgZmxvdyB0aHJlYWQsIGlz
IGRpc3BsYXllZCBjb3JyZWN0bHkgaW5zaWRlIGEgcmVnaW9uLjwvcD4KIDxwPk9uIHN1Y2Nlc3Ms
IHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgotPGRpdiBpZD0i
ZGl2MSIgY2xhc3M9ImVsZW1lbnRTaXplIj48L2Rpdj4KKzxkaXYgaWQ9ImRpdjEiIGNsYXNzPSJl
bGVtZW50U2l6ZSI+cmVnaW9uPC9kaXY+CiA8ZGl2IGlkPSJyZWdpb24xIiBjbGFzcz0iZWxlbWVu
dFNpemUiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wZWNmNzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNd
IFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRl
ciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJ
CS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50IHsKKwkJ
CQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4
OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkuY2F1c2VzVGhlUmVn
aW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0z
MHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJ
CXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsK
KwkJCQlib3JkZXI6IHNvbGlkIDFweCBCbGFjazsKKwkJCX0KKworCQkJLnNlY29uZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTI1cHgpOwor
CQkJCWJhY2tncm91bmQtY29sb3I6Q3lhbjsKKwkJCQltYXJnaW4tdG9wOi0xZW07CisJCQl9CisK
KwkJCS56MSwgLnoyIHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9CisKKwkJCS56MSB7
CisJCQkJei1pbmRleDogMTsKKwkJCX0KKworCQkJLnoyIHsKKwkJCQl6LWluZGV4OiAyOworCQkJ
fQorCisJCQkjcmVnaW9uIHsKKwkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJ
CQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1
cHggNnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHgg
N3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0
eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lv
biI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQgMi4KKwkJCQk8ZGl2IGNs
YXNzPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MSI+c29tZSB0ZXh0IDMuPC9kaXY+
CisJCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoy
Ij5zb21lIHRleHQgNC48L2Rpdj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQk8L2Rp
dj4KKwkJc29tZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBk
YXRlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZm
OTFmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC11cGRhdGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY0IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9t
IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBs
YXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNt
b290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCWJhY2tncm91bmQtY29s
b3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAz
cHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRl
ZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgo
LTM1cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVw
eCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29s
aWQgMXB4IEJsYWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjpDeWFuOworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgewor
CQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAx
OworCQkJfQorCisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24g
eworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJs
ZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0
bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJ
CQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgor
CTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0icmVnaW9uIj4KKwkJCTxkaXYgaWQ9
ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAyLgorCQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIHoyIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCQk8ZGl2IGNsYXNz
PSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCBzZWNvbmQgejEiPnNvbWUgdGV4dCA0Ljwv
ZGl2PgorCQkJCXNvbWUgdGV4dCA1LgorCQkJPC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQg
Ni4KKwkJPHA+ei1pbmRleCBzaG91bGQgd29yayBhcyBleHBlY3RlZC48L3A+CisJPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMzgzNWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LXVwZGF0ZS5odG1sCkBAIC0wLDAgKzEsNzAg
QEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBU
aGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIg
dGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsKKwkJCQkt
d2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7CisJCQkJ
LXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93Owor
CQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZw
eDsKKwkJCX0KKworCQkJLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJ
YmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJ
CQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7
CisJCQl9CisKKwkJCS5zZWNvbmQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVa
KC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47CisJ
CQkJbWFyZ2luLXRvcDotMWVtOworCQkJfQorCisJCQkuejEsIC56MiB7CisJCQkJcG9zaXRpb246
IHJlbGF0aXZlOworCQkJfQorCisJCQkuejEgeworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJ
CS56MiB7CisJCQkJei1pbmRleDogMjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwor
CQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHgg
NXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4
IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9z
dHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250
ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9C
ZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iY2F1c2Vz
VGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoyIj5zb21lIHRleHQgNC48L2Rpdj4KKwkJ
CXNvbWUgdGV4dCA1LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKwkJc29t
ZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuPC9wPgorCQk8
c2NyaXB0PgorCQkJZG9jdW1lbnQub2Zmc2V0VG9wOworCQkJZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIikuY2xhc3NOYW1lID0gImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoyIjsKKwkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5z
ZWNvbmQiKS5jbGFzc05hbWUgPSAiY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25k
IHoxIjsKKwkJPC9zY3JpcHQ+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1p
bmRleC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBjOGI0MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC5odG1sCkBAIC0w
LDAgKzEsNjUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1s
IHsKKwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVu
dCB7CisJCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7CisJCQkJYmFja2dyb3VuZC1jb2xvcjog
WWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKKwkJCQltYXJnaW46IDNweCA0
cHggNXB4IDZweDsKKwkJCX0KKworCQkJLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsK
KwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVw
eCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZw
eCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAx
cHggQmxhY2s7CisJCQl9CisKKwkJCS5zZWNvbmQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9y
OkN5YW47CisJCQkJbWFyZ2luLXRvcDotMWVtOworCQkJfQorCisJCQkuejEsIC56MiB7CisJCQkJ
cG9zaXRpb246IHJlbGF0aXZlOworCQkJfQorCisJCQkuejEgeworCQkJCXotaW5kZXg6IDE7CisJ
CQl9CisKKwkJCS56MiB7CisJCQkJei1pbmRleDogMjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJ
CQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4
IEJsYWNrOworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6
IDNweCA0cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFk
ZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJ
CX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2
IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAyLgorCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhl
UmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoyIj5zb21lIHRleHQgNC48
L2Rpdj4KKwkJCXNvbWUgdGV4dCA1LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rp
dj4KKwkJc29tZSB0ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQu
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNr
aW5nLW9yZGVyLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVk
LXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLWV4cGVjdGVkLmh0bWwKaW5kZXggMGMxMDc5Yi4u
YjAyZTZmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3Np
dGlvbmluZy1zdGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRt
bApAQCAtMSw4ICsxLDggQEAKIDwhZG9jdHlwZSBodG1sPgogPGh0bWw+Ci08ZGl2IHN0eWxlPSJo
ZWlnaHQ6MjAwcHg7Ym9yZGVyOjVweCBzb2xpZCBibGFjaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0
aDoyMTBweCI+Ci08ZGl2IHN0eWxlPSJ3aWR0aDoyMTBweDtoZWlnaHQ6MjAwcHg7YmFja2dyb3Vu
ZC1jb2xvcjpwdXJwbGU7Ij4zPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTti
YWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo1NXB4O3RvcDowcHg7aGVpZ2h0OjIwMHB4O3dpZHRo
OjEwMHB4Ij4yPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5k
LWNvbG9yOmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7bGVmdDowO2JvdHRvbTow
Ij4xPC9kaXY+Ci08ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9y
OmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtsZWZ0OjExMHB4O3RvcDowO2hlaWdodDoxMDBweCI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7d2lkdGg6MjEwcHg7cG9zaXRpb246cmVsYXRp
dmU7Ym9yZGVyOjVweCBzb2xpZCBibGFjayI+CisJPGRpdiBzdHlsZT0id2lkdGg6MjEwcHg7aGVp
Z2h0OjIwMHB4O2JhY2tncm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgorCTxkaXYgc3R5bGU9
InBvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6Z29sZDtsZWZ0OjU1cHg7dG9wOjBw
eDtoZWlnaHQ6MjAwcHg7d2lkdGg6MTAwcHgiPjI8L2Rpdj4KKwk8ZGl2IHN0eWxlPSJwb3NpdGlv
bjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Ymx1ZTt3aWR0aDoxMDBweDtoZWlnaHQ6
MTAwcHg7bGVmdDowO2JvdHRvbTowIj4xPC9kaXY+CisJPGRpdiBzdHlsZT0icG9zaXRpb246YWJz
b2x1dGU7YmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7bGVmdDoxMTBweDt0
b3A6MDtoZWlnaHQ6MTAwcHgiPjwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVy
Lmh0bWwKaW5kZXggZjc2ZTQ5MC4uZGQ3Y2I3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXIu
aHRtbApAQCAtNiwxNiArNiwxNCBAQCBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRD
b2x1bW5zRW5hYmxlZCh0cnVlKQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgc3R5
bGU9IndpZHRoOjIxMHB4OyBoZWlnaHQ6MjAwcHg7IGJvcmRlcjo1cHggc29saWQgYmxhY2s7IC1t
b3otY29sdW1uLXdpZHRoOjEwMHB4OyAtbW96LWNvbHVtbi1nYXA6MTBweDsgLXdlYmtpdC1jb2x1
bW4td2lkdGg6MTAwcHg7IC13ZWJraXQtY29sdW1uLWdhcDoxMHB4OyAtd2Via2l0LWNvbHVtbi1m
aWxsOmF1dG87IGNvbHVtbi13aWR0aDoxMDBweDsgY29sdW1uLWdhcDoxMHB4OyBjb2x1bW4tZmls
bDphdXRvOyI+Ci0KLTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+Ci08ZGl2IHN0eWxl
PSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7IGhlaWdodDo0MDBweDsgd2lkdGg6MTAw
cHgiPgotPGRpdiBzdHlsZT0id2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQtY29s
b3I6cHVycGxlOyI+MzwvZGl2PgotPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4Ij48L2Rpdj4KLTxk
aXYgc3R5bGU9IndpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBs
ZTsiPjM8L2Rpdj4KLTwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHotaW5k
ZXg6MTsgYmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7IHdpZHRoOjEwMCU7IGhlaWdodDoyMDBw
eDsgdG9wOjEwMHB4Ij4xPC9kaXY+Ci0KLTxkaXYgc3R5bGU9InBvc2l0aW9uOmZpeGVkO2JhY2tn
cm91bmQtY29sb3I6Z29sZDtsZWZ0OjY4cHg7dG9wOjEzcHg7aGVpZ2h0OjIwMHB4O3dpZHRoOjEw
MHB4Ij4yPC9kaXY+Ci08L2Rpdj4KKzxkaXYgc3R5bGU9Ii1tb3otY29sdW1uLXdpZHRoOjEwMHB4
OyAtbW96LWNvbHVtbi1nYXA6MTBweDsgd2lkdGg6MjEwcHg7IGhlaWdodDoyMDBweDtib3JkZXI6
NXB4IHNvbGlkIGJsYWNrOyAtd2Via2l0LWNvbHVtbi13aWR0aDoxMDBweDsgLXdlYmtpdC1jb2x1
bW4tZ2FwOjEwcHg7IC13ZWJraXQtY29sdW1uLWZpbGw6YXV0bzsgY29sdW1uLXdpZHRoOjEwMHB4
OyBjb2x1bW4tZ2FwOjEwcHg7IGNvbHVtbi1maWxsOmF1dG87Ij4KKwk8ZGl2IHN0eWxlPSJwb3Np
dGlvbjpyZWxhdGl2ZTsiPgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDts
ZWZ0OjA7IGhlaWdodDo0MDBweDsgd2lkdGg6MTAwcHgiPgorCQkJPGRpdiBzdHlsZT0id2lkdGg6
MTAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgorCQkJ
PGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4Ij48L2Rpdj4KKwkJCTxkaXYgc3R5bGU9IndpZHRoOjEw
MHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KKwkJPC9k
aXY+CisJCTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGJhY2tncm91
bmQtY29sb3I6bGlnaHRibHVlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MjAwcHg7IHRvcDoxMDBweCI+
MTwvZGl2PgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDtiYWNrZ3JvdW5kLWNvbG9yOmdv
bGQ7bGVmdDo2OHB4O3RvcDoxM3B4O2hlaWdodDoyMDBweDt3aWR0aDoxMDBweCI+MjwvZGl2Pgor
CTwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVn
aW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0
ZWQuaHRtbAppbmRleCBlMzlmZTZjLi40MWQ1NTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRpbmctY29tcG9z
aXRlZC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTEyLDEwICsxMiwxMyBAQAogICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOwogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsg
LypjcmVhdGUgU3RhY2tpbmcgQ29udGV4dCovCiB9CisjcmVnaW9uMSB7CisgICAgLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsgLyphY3RpdmF0ZSBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZyovCit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBpZD0icmVn
aW9uMSI+PC9kaXY+PGJyIC8+CisgICAgPGRpdiBpZD0icmVnaW9uMSI+cmVnaW9uPC9kaXY+PGJy
IC8+CiAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0
ZWQtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGlu
Zy1jb21wb3NpdGVkLWVsZW1lbnQuaHRtbAppbmRleCAxZGExZTJjLi4zODU4NDRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNvbXBvc2l0ZWQt
ZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRp
bmctY29tcG9zaXRlZC1lbGVtZW50Lmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAKICAgICA8IS0tIFRl
c3RpbmcgdGhhdCB0aGUgUmVuZGVyT2JqZWN0IGlzIG1hcmtlZCBhcyBwYXJ0IG9mIHRoZSBSZW5k
ZXJGbG93VGhyZWFkIGJlZm9yZSBpdCBhcHBsaWVzIHRoZSBmaXJzdCBzdHlsZS4KICAgICAgICAg
VGhlIHRlc3Qgc2hvdWxkIHBhaW50IHR3byBncmVlbiByZWN0YW5nbGVzLiBUaGVyZSBzaG91bGQg
YmUgbm8gcmVkLiAtLT4KICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KLSAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0Ij5yZWdpb248L2Rpdj4KICAg
ICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJyZWdpb24xIj48L2Rpdj48YnIgLz4KICAgICA8ZGl2IGlk
PSJyZWdpb24yIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAyMWExZjc3Li5lOThkOGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjMsNyArMzIzLDcgQEAgd2Via2l0
Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gY29tcG9zaXRpbmcvb3ZlcmxhcC1ibGVuZGluZy9jaGls
ZHJlbi1vcGFjaXR5LWh1Z2UKIHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGNvbXBvc2l0
aW5nL292ZXJsYXAtYmxlbmRpbmcvY2hpbGRyZW4tb3BhY2l0eS1uby1vdmVybGFwLmh0bWwgIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBjc3MzL2Zp
bHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20tdHJhbnNmb3JtLXBhcmFtZXRlcnMuaHRtbCAgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvbGF5
ZXJzL25vLWNsaXBwaW5nLW92ZXJmbG93LWhpZGRlbi1hZGRlZC1hZnRlci10cmFuc2l0aW9uLmh0
bWwgIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBm
YXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sICBbIEltYWdlT25seUZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gZmFzdC9tdWx0aWNvbC9taXhl
ZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogd2Vi
a2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gZmFzdC9yZWdpb25zL2ZpeGVkLXBvcy1lbGVtLWlu
LXJlZ2lvbi5odG1sICBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExODkyNSBb
IERlYnVnIF0gc3ZnL3JlcGFpbnQvYnVmZmVyZWQtcmVuZGVyaW5nLXN0YXRpYy1pbWFnZS5odG1s
ICBbIEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJkOWQ1Ny4uZGZlMDczMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAxMy0xMC0xOCAgTWloYWkgTWFlcmVhbiAg
PG1tYWVyZWFuQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMg
ZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9u
cycgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIwNDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiB0aGUgd29yayBvZiBBbGV4YW5kcnUgQ2hpY3VsaXRh
IGF0IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTIwMzg3MiZhY3Rp
b249cmV2aWV3CisKKyAgICAgICAgVGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIGluc2lkZSB0aGUgbmFt
ZWQgZmxvdyB0aHJlYWRzIGFyZSBjb2xsZWN0ZWQgYXMgcGFydCBvZiB0aGUgcmVnaW9ucyAoYXMg
Y2hpbGRyZW4gb2YgdGhlCisgICAgICAgIEdyYXBoaWNzTGF5ZXIgb2YgdGhlIGxheWVyIHRoYXQg
Y29ycmVzcG9uZHMgdG8gdGhlIHJlZ2lvbiAod2hpY2ggaXMgYXR0YWNoZWQgdG8gdGhlIHBhcmVu
dCByZW5kZXJlciBvZgorICAgICAgICBSZW5kZXJOYW1lRmxvd0ZyYWdtZW50KSkuCisgICAgICAg
IFdoZW4gYSByZWdpb24gZGlzcGxheXMgYSBsYXllciB0aGF0IG5lZWRzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nIHdlIGFjdGl2YXRlIHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBmb3IKKyAg
ICAgICAgdGhhdCByZWdpb24gdG9vIChpbnNpZGUgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aGFzIGxhbmRlZCBiZWZvcmUgKGFzIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1
NjQ1MSksIGJ1dCB3YXMgcmV2ZXJ0ZWQgYmVjYXVzZQorICAgICAgICBmYXN0L211bHRpY29sL21p
eGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0bWwgZmFpbGVkLiBUaGUgZml4IGlzIGlu
c2lkZSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbkJlQ29tcG9zaXRlZAorICAgICAgICB0aGF0
IG9ubHkgZW5hYmxlcyBjb21wb3NpdGluZyBmb3IgbGF5ZXJzIGluc2lkZSBmbG93IHRocmVhZHMg
dGhhdCBjb2xsZWN0IHRoZSBncmFwaGljcyBsYXllcnMgdW5kZXIgdGhlIHJlZ2lvbnMuCisKKyAg
ICAgICAgQW5vdGhlciBjaGFuZ2UgZnJvbSBjaGFuZ2VzZXQgIzE1NjQ1MSBpcyB0aGF0IG5vdyB0
aGUgcmVnaW9uIHJlbmRlcmVycyBhcmUgY3JlYXRlZCBhcyBhbm9ueW1vdXMgcmVuZGVyZXJzIHVu
ZGVyCisgICAgICAgIHRoZSBlbGVtZW50IHRoYXQgaGFzIHRoZSBmbG93LWZyb20gcHJvcGVydHku
IFdoZW4gYSBjb21wb3NpdGVkIGxheWVyIGlzIG5lZWRlZCBmb3IgdGhlIHJlZ2lvbiwgaXQgc2l0
cyBpbiBpdCdzCisgICAgICAgIHBhcmVudCByZW5kZXJlciwgbm90IGluIHRoZSByZWdpb24gcmVu
ZGVyZXIgKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KS4KKworICAgICAgICBUZXN0czogY29tcG9z
aXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3Jt
ZWQtY2hpbGQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxh
eWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5n
LWZvci12aWRlby5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy5odG1sCisgICAgICAgICAgICAg
ICBjb21wb3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJl
YWQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJh
bnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAg
ICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9y
bWVkLWxheWVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRl
eC11cGRhdGUuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4
Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5v
bnltb3VzQ2hpbGRyZW4pOiBOb3QgZm9yIFJlbmRlckZsb3dUaHJlYWRzLCBhcyB0aGV5IGFyZSB1
cGRhdGVkCisgICAgICAgIHRocm91Z2ggdGhlIFJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlIGZ1
bmN0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCk6IFdoZW4gdGhlIGxheW91dCBv
ZiB0aGUgZmxvdyB0aHJlYWQgaXMgb3ZlciAoaW5jbHVkaW5nIHRoZSAyIHBoYXNlIGxheW91dCks
CisgICAgICAgIHdlIHVwZGF0ZSBhbGwgdGhlIG1hcHBpbmdzIGJldHdlZW4gdGhlIGxheWVycyBp
bnNpZGUgdGhlIGZsb3cgdGhyZWFkIGFuZCB0aGUgcmVnaW9ucyB3aGVyZSB0aG9zZSBsYXllcnMg
d2lsbCBiZQorICAgICAgICBwYWludGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6aGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KTogV2hldGhlciBhbnkgb2YgdGhl
IHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRpbmcgZGVzY2VuZGFudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZvclJlZ2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6Y2FjaGVkUmVnaW9uRm9yQ29tcG9zaXRlZExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKTogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRo
ZSBsYXllcnMgaWYgYSBsYXllciBoYXMgbW92ZWQKKyAgICAgICAgZnJvbSBhIHJlZ2lvbiB0byBh
bm90aGVyIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2Vv
bWV0cnlNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hS
ZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6ZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjppc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXllckJvdW5kcyk6IFdoZW4gd2UgY2Fs
Y3VsYXRlIHRoZSBib3VuZHMgb2YgdGhlIFJlbmRlclZpZXcsIHdlIGlnbm9yZSB0aG9zZQorICAg
ICAgICBmbG93IHRocmVhZHMgdGhhdCBjb2xsZWN0IHRoZSBncmFwaGljcyBsYXllcnMgdW5kZXIg
dGhlIHJlZ2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJM
aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlz
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnNob3VsZENsaXBDb21wb3NpdGVkQm91bmRzKTogTm90IGlmIGl0J3MgYSBmbG93
IHRocmVhZCB0aGF0IGNvbGxlY3RzIHRoZSBncmFwaGljcworICAgICAgICBsYXllcnMgdW5kZXIg
dGhlIHJlZ2lvbnMKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckdlb21ldHJ5KTogTm93IGFkanVzdHMgdGhlIGFuY2VzdG9yQ29tcG9zaXRp
bmdCb3VuZHMgZm9yIHRoZSBGbG93VGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjphZGp1c3RBbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzRm9yRmxvd1RocmVhZCk6
IE1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcworICAgICAgICBpdHMgYm9yZGVy
cywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmlzU2ltcGxlQ29udGFpbmVy
Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMpOiBOb3cgY2FsbHMgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1l
bnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlUmVn
aW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOiBEbyBub3QgaXRlcmF0
ZSB0aGUgUmVuZGVyRmxvd1RocmVhZCBkaXJlY3RseSBpZgorICAgICAgICB3ZSBhcmUgZ29pbmcg
dG8gY29sbGVjdCB0aGUgY29tcG9zaXRlZCBsYXllcnMgYXMgcGFydCBvZiByZWdpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkUmVnaW9uQ29tcG9z
aXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpjYW5CZUNvbXBvc2l0ZWQpOiBDU1MgUmVnaW9ucyBmbG93IHRocmVhZHMgZG8gbm90IG5lZWQg
dG8gYmUgY29tcG9zaXRlZCBhcyB3ZQorICAgICAgICB1c2UgY29tcG9zaXRlZCBSZW5kZXJSZWdp
b25zIHRvIHJlbmRlciB0aGUgYmFja2dyb3VuZCBvZiB0aGUgUmVuZGVyRmxvd1RocmVhZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGlu
Z0ZvckluZGlyZWN0UmVhc29uKTogSWYgaXQncyBhIGNvbnRhaW5lciBvZiBhIGNzcyByZWdpb24u
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtblNldDo6YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0
aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6bGF5ZXJPd25lcik6IFdoZW4gdGhlIGNv
bnRlbnQgaW5zaWRlIHRoZSByZWdpb24gcmVxdWlyZXMgdGhlIHJlZ2lvbiB0byBoYXZlIGEKKyAg
ICAgICAgbGF5ZXIsIHRoZSBsYXllciB3aWxsIGJlIGNyZWF0ZWQgb24gdGhlIHJlZ2lvbidzIHBh
cmVudCByZW5kZXJlciBpbnN0ZWFkLiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoYXQgcmVuZGVyZXIK
KyAgICAgICAgaG9sZGluZyB0aGUgbGF5ZXIuIFRoZSByZXR1cm4gdmFsdWUgbWF5IGJlIG51bGwu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1RocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6Om5leHRSZW5kZXJlckZv
ck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91
c1JlbmRlcmVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ6OmFkZEZsb3dDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ6OnJlbW92ZUZsb3dDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDogbV9mbG93VGhyZWFkQ2hpbGRMaXN0IGlz
IG5vdyBhbGxvY2F0ZWQgdGhyb3VnaCBhbiBPd25QdHIgdG8ga2VlcCB0aGUgcmVuZGVyCisgICAg
ICAgIGFyZW5hIHVuZGVyIHRoZSBzaXplIGxpbWl0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjphZGp1c3RSZWdp
b25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclJlZ2lvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
d3JpdGVMYXllcnMpOgorCiAyMDEzLTEwLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hA
Y29sbGFib3JhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgLS1uby1z
dmcgb3B0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29u
dHJvbGxlci5jcHAKaW5kZXggMWEzZjdiYS4uNWIyYjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcg
QEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVy
c0lmTmVlZGVkKCkKICAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJldmVyc2Ugb3JkZXIg
YmVjYXVzZSBSZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBSZW5kZXJMYXllcnMgZm9yIHRoZSBm
b2xsb3dpbmcgZmxvdyB0aHJlYWRzLgogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlz
dDo6cmV2ZXJzZV9pdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5y
YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPnJlbmQoKTsgKytp
dGVyKSB7CiAgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0
ZXI7Ci0gICAgICAgIGZsb3dSZW5kZXJlci0+dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZO
ZWVkZWQoKTsKKyAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRvUmVnaW9uTWFw
cGluZ3NJZk5lZWRlZCgpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDM2MDYzNDAuLjBlMGRmZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc1NCw2ICs3NTQsMTAgQEAg
dm9pZCBSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hpbGRyZW4oU3R5
bGVQcm9wYWdhdGlvblR5cGUgcHJvcGEKICAgICAgICAgICAgIGNvbnRpbnVlOwogI2VuZGlmCiAK
KyAgICAgICAgLy8gUmVuZGVyRmxvd1RocmVhZHMgYXJlIHVwZGF0ZWQgdGhyb3VnaCB0aGUgUmVu
ZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UgZnVuY3Rpb24uCisgICAgICAgIGlmIChjaGlsZC0+aXNS
ZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0
eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgY2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSk7CiAgICAg
ICAgIGlmIChzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAgIGlmIChj
aGlsZC0+c3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IDhhZjQyOTcuLmE2YmJmZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIlJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0yMzYsOSArMjM3
LDEwIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKICAgICAvLyBOb3RlIHRoYXQg
dGhlcmUncyBubyBuZWVkIHRvIGRvIHNvIGZvciB0aGUgaW5saW5lIG11bHRpLWNvbHVtbiBhcyB3
ZSBhcmUgbm90IG1vdmluZyBsYXllcnMgaW50byBkaWZmZXJlbnQKICAgICAvLyBjb250YWluZXJz
LCBidXQganVzdCBhZGp1c3RpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBSZW5kZXJMYXllckJhY2tp
bmcuCiAgICAgaWYgKCFtX25lZWRzVHdvUGhhc2VzTGF5b3V0KSB7Ci0gICAgICAgIHVwZGF0ZUxh
eWVyVG9SZWdpb25NYXBwaW5ncygpOwotICAgICAgICAvLyBGSVhNRTogSWYgd2UgaGF2ZSBsYXll
cnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2Ugc2hvdWxkIHRyaWdn
ZXIKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdp
b24gdG8gYW5vdGhlciwgd2UgdHJpZ2dlcgogICAgICAgICAvLyBhIGNvbXBvc2l0ZWQgbGF5ZXJz
IHJlYnVpbGQgaW4gaGVyZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9ucyB3aWxsIGNvbGxl
Y3QgdGhlIHJpZ2h0IGxheWVycy4KKyAgICAgICAgaWYgKHVwZGF0ZUFsbExheWVyVG9SZWdpb25N
YXBwaW5ncygpKQorICAgICAgICAgICAgbGF5ZXIoKS0+Y29tcG9zaXRvcigpLnNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjUwLDM3ICsyNTIs
NzMgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogfQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotUmVuZGVyUmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdp
b25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIpCitib29sIFJlbmRl
ckZsb3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0CiB7Ci0g
ICAgTGF5b3V0UG9pbnQgbGVmdFRvcExvY2F0aW9uID0gY2hpbGRMYXllci0+cmVuZGVyQm94KCkg
PyBjaGlsZExheWVyLT5yZW5kZXJCb3goKS0+ZmxpcEZvcldyaXRpbmdNb2RlKExheW91dFBvaW50
KCkpIDogTGF5b3V0UG9pbnQoKTsKLSAgICBMYXlvdXRQb2ludCBmbG93VGhyZWFkT2Zmc2V0ID0g
Zmxvb3JlZExheW91dFBvaW50KGNoaWxkTGF5ZXItPnJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5l
clBvaW50KGxlZnRUb3BMb2NhdGlvbiwgdGhpcywgQXBwbHlDb250YWluZXJGbGlwKSk7Ci0gICAg
cmV0dXJuIHJlZ2lvbkF0QmxvY2tPZmZzZXQoMCwgZmxpcEZvcldyaXRpbmdNb2RlKGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBmbG93VGhyZWFkT2Zmc2V0LnkoKSA6IGZsb3dUaHJlYWRPZmZz
ZXQueCgpKSwgdHJ1ZSwgRGlzYWxsb3dSZWdpb25BdXRvR2VuZXJhdGlvbik7CisgICAgZm9yIChS
ZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGlmIChSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiBsYXllck93bmVyID0gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dCgqaXRlciktPmxheWVyT3duZXIoKSkKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5oYXNM
YXllcigpICYmIGxheWVyT3duZXItPmxheWVyKCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citjb25zdCBSZW5kZXJMYXllckxpc3QqIFJlbmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZv
clJlZ2lvbihSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uKQoreworICAgIGlmICghbV9y
ZWdpb25Ub0xheWVyTGlzdE1hcCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgdXBkYXRlQWxsTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKTsKKyAgICBSZWdpb25Ub0xheWVyTGlzdE1hcDo6
Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3IgPSBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwLT5maW5kKHJl
Z2lvbik7CisgICAgcmV0dXJuIGl0ZXJhdG9yID09IG1fcmVnaW9uVG9MYXllckxpc3RNYXAtPmVu
ZCgpID8gMCA6ICZpdGVyYXRvci0+dmFsdWU7Cit9CisKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIm
IGNoaWxkTGF5ZXIpCit7CisgICAgaWYgKGNoaWxkTGF5ZXIucmVuZGVyQm94KCkpIHsKKyAgICAg
ICAgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9IDA7CisgICAgICAgIFJlbmRlclJlZ2lvbiog
ZW5kUmVnaW9uID0gMDsKKyAgICAgICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goY2hpbGRMYXllci5y
ZW5kZXJCb3goKSwgc3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7CisgICAgICAgIC8vIFRoZSB2aWRl
byB0YWcgaXMgc3VjaCBhIGJveCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHJlZ2lvbiByYW5nZSBiZWNh
dXNlIGl0J3MgaW5saW5lIChieSBkZWZhdWx0KS4KKyAgICAgICAgaWYgKHN0YXJ0UmVnaW9uKQor
ICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoc3RhcnRSZWdpb24p
OworICAgIH0KKworICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlJ2xsIGhhdmUgcmVn
aW9uIHJhbmdlcyBmb3IgaW5saW5lcyBhcyB3ZWxsLgorICAgIExheW91dFBvaW50IGZsb3dUaHJl
YWRPZmZzZXQgPSBmbG9vcmVkTGF5b3V0UG9pbnQoY2hpbGRMYXllci5yZW5kZXJlcigpLmxvY2Fs
VG9Db250YWluZXJQb2ludChMYXlvdXRQb2ludCgpLCB0aGlzLCBBcHBseUNvbnRhaW5lckZsaXAp
KTsKKyAgICByZXR1cm4gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudChyZWdpb25BdEJsb2NrT2Zm
c2V0KDAsIGZsaXBGb3JXcml0aW5nTW9kZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxv
d1RocmVhZE9mZnNldC55KCkgOiBmbG93VGhyZWFkT2Zmc2V0LngoKSksIHRydWUsIERpc2FsbG93
UmVnaW9uQXV0b0dlbmVyYXRpb24pKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRh
dGVSZWdpb25Gb3JSZW5kZXJMYXllcihSZW5kZXJMYXllciogbGF5ZXIsIExheWVyVG9SZWdpb25N
YXAmIGxheWVyVG9SZWdpb25NYXAsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiByZWdpb25Ub0xheWVy
TGlzdE1hcCwgYm9vbCYgbmVlZHNMYXllclVwZGF0ZSkKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiBSZW5kZXJGbG93VGhyZWFkOjpjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVy
TGF5ZXImIGNoaWxkTGF5ZXIpCiB7Ci0gICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSByZWdpb25G
b3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOworICAgIGlmICghbV9sYXllclRvUmVnaW9uTWFwKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5l
ZWRlZCgpOworICAgIHJldHVybiBtX2xheWVyVG9SZWdpb25NYXAtPmdldCgmY2hpbGRMYXllcik7
Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdz
KFJlbmRlckxheWVyJiBsYXllciwgTGF5ZXJUb1JlZ2lvbk1hcCYgbGF5ZXJUb1JlZ2lvbk1hcCwg
UmVnaW9uVG9MYXllckxpc3RNYXAmIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBib29sJiBuZWVkc0xh
eWVyVXBkYXRlKQoreworICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24gPSByZWdp
b25Gb3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOwogICAgIGlmICghbmVlZHNMYXllclVwZGF0ZSkg
ewotICAgICAgICBBU1NFUlQobV9sYXllclRvUmVnaW9uTWFwKTsKICAgICAgICAgLy8gRmlndXJl
IG91dCBpZiB3ZSBtb3ZlZCB0aGlzIGxheWVyIGZyb20gYSByZWdpb24gdG8gdGhlIG90aGVyLgot
ICAgICAgICBSZW5kZXJSZWdpb24qIHByZXZpb3VzUmVnaW9uID0gbV9sYXllclRvUmVnaW9uTWFw
LT5nZXQobGF5ZXIpOworICAgICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcHJldmlvdXNS
ZWdpb24gPSBjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOwogICAgICAgICBp
ZiAocHJldmlvdXNSZWdpb24gIT0gcmVnaW9uKQogICAgICAgICAgICAgbmVlZHNMYXllclVwZGF0
ZSA9IHRydWU7CiAgICAgfQorCiAgICAgaWYgKCFyZWdpb24pCiAgICAgICAgIHJldHVybjsKLSAg
ICBsYXllclRvUmVnaW9uTWFwLnNldChsYXllciwgcmVnaW9uKTsKKworICAgIGxheWVyVG9SZWdp
b25NYXAuc2V0KCZsYXllciwgcmVnaW9uKTsKKwogICAgIFJlZ2lvblRvTGF5ZXJMaXN0TWFwOjpp
dGVyYXRvciBpdGVyYXRvciA9IHJlZ2lvblRvTGF5ZXJMaXN0TWFwLmZpbmQocmVnaW9uKTsKICAg
ICBSZW5kZXJMYXllckxpc3QmIGxpc3QgPSBpdGVyYXRvciA9PSByZWdpb25Ub0xheWVyTGlzdE1h
cC5lbmQoKSA/IHJlZ2lvblRvTGF5ZXJMaXN0TWFwLnNldChyZWdpb24sIFJlbmRlckxheWVyTGlz
dCgpKS5pdGVyYXRvci0+dmFsdWUgOiBpdGVyYXRvci0+dmFsdWU7Ci0gICAgbGlzdC5hcHBlbmQo
bGF5ZXIpOworICAgIEFTU0VSVCghbGlzdC5jb250YWlucygmbGF5ZXIpKTsKKyAgICBsaXN0LmFw
cGVuZCgmbGF5ZXIpOwogfQogCi1ib29sIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxheWVyVG9S
ZWdpb25NYXBwaW5ncygpCitib29sIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9S
ZWdpb25NYXBwaW5ncygpCiB7Ci0gICAgLy8gV2Ugb25seSBuZWVkIHRvIG1hcCBsYXllcnMgdG8g
cmVnaW9ucyBmb3IgbmFtZWQgZmxvdyB0aHJlYWRzLgotICAgIC8vIE11bHRpLWNvbHVtbiB0aHJl
YWRzIGFyZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSByZWdpb25zIGFuZCBkbyBub3QgcmVxdWly
ZQotICAgIC8vIGRpc3RyaWJ1dGluZyB0aGUgbGF5ZXJzLgotICAgIGlmICghaXNPdXRPZkZsb3dS
ZW5kZXJGbG93VGhyZWFkKCkpCisgICAgaWYgKCFjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJS
ZWdpb25zKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGNhbid0IHVzZSBj
dXJyZW50Rmxvd1RocmVhZCBhcyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIGludGVybGVhdmVkIGZs
b3cgdGhyZWFkcyBhbmQgdGhlIHdyb25nIG9uZSBjb3VsZCBiZSB1c2VkLgpAQCAtMjg4LDM0ICsz
MjYsMjYgQEAgYm9vbCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9uTWFwcGlu
Z3MoKQogICAgIEN1cnJlbnRSZW5kZXJGbG93VGhyZWFkRGlzYWJsZXIgZGlzYWJsZXIoJnZpZXco
KSk7CiAKICAgICAvLyBJZiB0aGUgUmVuZGVyRmxvd1RocmVhZCBoYWQgYSB6LWluZGV4IGxheWVy
IHVwZGF0ZSwgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29tcG9zaXRlZCBsYXllcnMgdG9v
LgotICAgIGJvb2wgbmVlZHNMYXllclVwZGF0ZSA9IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0Rp
cnR5IHx8ICFtX2xheWVyVG9SZWdpb25NYXAuZ2V0KCk7CisgICAgYm9vbCBuZWVkc0xheWVyVXBk
YXRlID0gbGF5ZXIoKS0+aXNEaXJ0eVJlbmRlckZsb3dUaHJlYWQoKSB8fCBtX2xheWVyc1RvUmVn
aW9uTWFwcGluZ3NEaXJ0eSB8fCAhbV9sYXllclRvUmVnaW9uTWFwLmdldCgpOwogICAgIGxheWVy
KCktPnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpOwogCiAgICAgTGF5ZXJUb1JlZ2lvbk1hcCBs
YXllclRvUmVnaW9uTWFwOwogICAgIFJlZ2lvblRvTGF5ZXJMaXN0TWFwIHJlZ2lvblRvTGF5ZXJM
aXN0TWFwOwogCi0gICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0g
bGF5ZXIoKS0+bmVnWk9yZGVyTGlzdCgpKSB7Ci0gICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5l
Z1pPcmRlckxpc3QtPnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0
U2l6ZTsgKytpKQotICAgICAgICAgICAgdXBkYXRlUmVnaW9uRm9yUmVuZGVyTGF5ZXIobmVnWk9y
ZGVyTGlzdC0+YXQoaSksIGxheWVyVG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBu
ZWVkc0xheWVyVXBkYXRlKTsKLSAgICB9Ci0KLSAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4q
IG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXIoKS0+bm9ybWFsRmxvd0xpc3QoKSkgewotICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCi0gICAgICAgICAgICB1cGRhdGVSZWdpb25G
b3JSZW5kZXJMYXllcihub3JtYWxGbG93TGlzdC0+YXQoaSksIGxheWVyVG9SZWdpb25NYXAsIHJl
Z2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBkYXRlKTsKLSAgICB9Ci0gICAgCi0gICAg
aWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXIoKS0+cG9zWk9y
ZGVyTGlzdCgpKSB7Ci0gICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNp
emUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQotICAg
ICAgICAgICAgdXBkYXRlUmVnaW9uRm9yUmVuZGVyTGF5ZXIocG9zWk9yZGVyTGlzdC0+YXQoaSks
IGxheWVyVG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBkYXRl
KTsKLSAgICB9CisgICAgUmVuZGVyTGF5ZXJMaXN0KiBsaXN0c1tdID0geyBsYXllcigpLT5uZWda
T3JkZXJMaXN0KCksIGxheWVyKCktPm5vcm1hbEZsb3dMaXN0KCksIGxheWVyKCktPnBvc1pPcmRl
ckxpc3QoKX07CisgICAgZm9yIChzaXplX3QgbGlzdEluZGV4ID0gMDsgbGlzdEluZGV4IDwgc2l6
ZW9mKGxpc3RzKSAvIHNpemVvZihsaXN0c1swXSk7ICsrbGlzdEluZGV4KQorICAgICAgICBpZiAo
UmVuZGVyTGF5ZXJMaXN0KiBsaXN0ID0gbGlzdHNbbGlzdEluZGV4XSkKKyAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwLCBsaXN0U2l6ZSA9IGxpc3QtPnNpemUoKTsgaSA8IGxpc3RTaXplOyAr
K2kpCisgICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCpsaXN0LT5h
dChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJV
cGRhdGUpOwogCiAgICAgaWYgKG5lZWRzTGF5ZXJVcGRhdGUpIHsKICAgICAgICAgaWYgKCFtX2xh
eWVyVG9SZWdpb25NYXApCiAgICAgICAgICAgICBtX2xheWVyVG9SZWdpb25NYXAgPSBhZG9wdFB0
cihuZXcgTGF5ZXJUb1JlZ2lvbk1hcCgpKTsKICAgICAgICAgbV9sYXllclRvUmVnaW9uTWFwLT5z
d2FwKGxheWVyVG9SZWdpb25NYXApOworCisgICAgICAgIGlmICghbV9yZWdpb25Ub0xheWVyTGlz
dE1hcCkKKyAgICAgICAgICAgIG1fcmVnaW9uVG9MYXllckxpc3RNYXAgPSBhZG9wdFB0cihuZXcg
UmVnaW9uVG9MYXllckxpc3RNYXAoKSk7CisgICAgICAgIG1fcmVnaW9uVG9MYXllckxpc3RNYXAt
PnN3YXAocmVnaW9uVG9MYXllckxpc3RNYXApOwogICAgIH0KIAogICAgIG1fbGF5ZXJzVG9SZWdp
b25NYXBwaW5nc0RpcnR5ID0gZmFsc2U7CkBAIC0zMjQsNiArMzU0LDE1IEBAIGJvb2wgUmVuZGVy
Rmxvd1RocmVhZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCkKIH0KICNlbmRpZgogCiti
b29sIFJlbmRlckZsb3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMo
KSBjb25zdAoreworICAgIC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMg
Zm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KKyAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFkcyBhcmUg
ZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUKKyAgICAv
LyBkaXN0cmlidXRpbmcgdGhlIGxheWVycy4KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lkdGgoKQogewogICAgIExheW91dFVu
aXQgbG9naWNhbFdpZHRoID0gaW5pdGlhbExvZ2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggYmUxNTRiMy4uNTY0M2VlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC00MSwxMyAr
NDEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IExheWVyRnJhZ21lbnQ7CiB0eXBl
ZGVmIFZlY3RvcjxMYXllckZyYWdtZW50LCAxPiBMYXllckZyYWdtZW50czsKIGNsYXNzIFJlbmRl
ckZsb3dUaHJlYWQ7CitjbGFzcyBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDsKIGNsYXNzIFJlbmRl
clN0eWxlOwogY2xhc3MgUmVuZGVyUmVnaW9uOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJSZWdpb24qPiBSZW5kZXJSZWdpb25M
aXN0OwogdHlwZWRlZiBWZWN0b3I8UmVuZGVyTGF5ZXIqPiBSZW5kZXJMYXllckxpc3Q7Ci10eXBl
ZGVmIEhhc2hNYXA8UmVuZGVyUmVnaW9uKiwgUmVuZGVyTGF5ZXJMaXN0PiBSZWdpb25Ub0xheWVy
TGlzdE1hcDsKLXR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJlbmRlclJlZ2lvbio+IExh
eWVyVG9SZWdpb25NYXA7Cit0eXBlZGVmIEhhc2hNYXA8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQq
LCBSZW5kZXJMYXllckxpc3Q+IFJlZ2lvblRvTGF5ZXJMaXN0TWFwOwordHlwZWRlZiBIYXNoTWFw
PFJlbmRlckxheWVyKiwgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqPiBMYXllclRvUmVnaW9uTWFw
OworI2VuZGlmCiAKIC8vIFJlbmRlckZsb3dUaHJlYWQgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0
aGUgcmVuZGVyIG9iamVjdHMgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBhCiAvLyBmbG93IHRocmVhZC4g
SXQgd2lsbCBhbHNvIGhlbHAgaW4gZG9pbmcgdGhlIGxheW91dC4gSG93ZXZlciwgaXQgd2lsbCBu
b3QgcmVuZGVyCkBAIC0xMTcsOCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgUmVuZGVyUmVnaW9u
KiByZWdpb25BdEJsb2NrT2Zmc2V0KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQsIGJvb2wg
ZXh0ZW5kTGFzdFJlZ2lvbiA9IGZhbHNlLCBSZWdpb25BdXRvR2VuZXJhdGlvblBvbGljeSA9IEFs
bG93UmVnaW9uQXV0b0dlbmVyYXRpb24pOwogCi0gICAgY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBn
ZXRMYXllckxpc3RGb3JSZWdpb24oUmVuZGVyUmVnaW9uKikgY29uc3Q7Ci0KICAgICBib29sIHJl
Z2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uc0hh
dmVVbmlmb3JtTG9naWNhbFdpZHRoOyB9CiAgICAgYm9vbCByZWdpb25zSGF2ZVVuaWZvcm1Mb2dp
Y2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVp
Z2h0OyB9CiAKQEAgLTE4MSwxMyArMTgyLDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTmVl
ZHNUd29QaGFzZXNMYXlvdXQoKSB7IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSBmYWxzZTsgfQog
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIFdoZXRoZXIgYW55IG9m
IHRoZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgYm9vbCBoYXND
b21wb3NpdGluZ1JlZ2lvbkRlc2NlbmRhbnQoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0TmVlZHNM
YXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKSB7IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0Rp
cnR5ID0gdHJ1ZTsgfQotICAgIHZvaWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVk
ZWQoKQorICAgIHZvaWQgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKQog
ICAgIHsKICAgICAgICAgaWYgKG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KQotICAgICAg
ICAgICAgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICB1cGRhdGVB
bGxMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsKICAgICB9CisKKyAgICBjb25zdCBSZW5kZXJMYXll
ckxpc3QqIGdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCopOwor
CisgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihS
ZW5kZXJMYXllciYpOyAvLyBCeSBtZWFucyBvZiBnZXRSZWdpb25SYW5nZUZvckJveCBvciByZWdp
b25BdEJsb2NrT2Zmc2V0LgorICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBjYWNoZWRSZWdp
b25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXImKTsKKwogI2VuZGlmCisgICAgdmlydHVh
bCBib29sIGNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdDsKIAogICAg
IHZvaWQgcHVzaEZsb3dUaHJlYWRMYXlvdXRTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QqKTsKICAg
ICB2b2lkIHBvcEZsb3dUaHJlYWRMYXlvdXRTdGF0ZSgpOwpAQCAtMjIyLDcgKzIzMywxMSBAQCBw
cm90ZWN0ZWQ6CiAgICAgTGF5b3V0UmVjdCBjb21wdXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0
IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSBjb25z
dDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBSZW5kZXJSZWdpb24q
IHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopOworICAgIGJvb2wgdXBkYXRl
QWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CisKKyAgICAvLyBUcmlnZ2VycyBhIGxheWVycycg
dXBkYXRlIGlmIGEgbGF5ZXIgaGFzIG1vdmVkIGZyb20gYSByZWdpb24gdG8gYW5vdGhlciBzaW5j
ZSB0aGUgbGFzdCB1cGRhdGUuCisgICAgdm9pZCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3Mo
UmVuZGVyTGF5ZXImLCBMYXllclRvUmVnaW9uTWFwJiwgUmVnaW9uVG9MYXllckxpc3RNYXAmLCBi
b29sJiBuZWVkc0xheWVyVXBkYXRlKTsKKyAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVn
aW9uRm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyKik7CiAgICAgYm9vbCB1cGRhdGVMYXll
clRvUmVnaW9uTWFwcGluZ3MoKTsKICAgICB2b2lkIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVy
KFJlbmRlckxheWVyKiwgTGF5ZXJUb1JlZ2lvbk1hcCYsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiwg
Ym9vbCYgbmVlZHNMYXllclVwZGF0ZSk7CiAjZW5kaWYKQEAgLTMwNCw3ICszMTksMTEgQEAgcHJv
dGVjdGVkOgogICAgIH07CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAg
Ly8gVG8gZWFzaWx5IGZpbmQgdGhlIHJlZ2lvbiB3aGVyZSBhIGxheWVyIHNob3VsZCBiZSBwYWlu
dGVkLgogICAgIE93blB0cjxMYXllclRvUmVnaW9uTWFwPiBtX2xheWVyVG9SZWdpb25NYXA7CisK
KyAgICAvLyBUbyBlYXNpbHkgZmluZCB0aGUgbGlzdCBvZiBsYXllcnMgdGhhdCBwYWludCBpbiBh
IHJlZ2lvbi4KKyAgICBPd25QdHI8UmVnaW9uVG9MYXllckxpc3RNYXA+IG1fcmVnaW9uVG9MYXll
ckxpc3RNYXA7CiAjZW5kaWYKIAogICAgIC8vIEEgbWFwcyBmcm9tIFJlbmRlckJveApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKaW5kZXggMTg2MmE5
NS4uNmJhZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdl
b21ldHJ5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0
cnlNYXAuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKIAorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIK
ICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgpAQCAtMjUxLDYgKzI1MiwxMiBAQCB2b2lkIFJlbmRlckdl
b21ldHJ5TWFwOjpwdXNoVmlldyhjb25zdCBSZW5kZXJWaWV3KiB2aWV3LCBjb25zdCBMYXlvdXRT
aXplJiBzY3JvbAogICAgIHN0ZXBJbnNlcnRlZChzdGVwKTsKIH0KIAordm9pZCBSZW5kZXJHZW9t
ZXRyeU1hcDo6cHVzaFJlbmRlckZsb3dUaHJlYWQoY29uc3QgUmVuZGVyRmxvd1RocmVhZCogZmxv
d1RocmVhZCkKK3sKKyAgICBtX21hcHBpbmcuYXBwZW5kKFJlbmRlckdlb21ldHJ5TWFwU3RlcChm
bG93VGhyZWFkLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSkpOworICAgIHN0ZXBJbnNlcnRl
ZChtX21hcHBpbmcubGFzdCgpKTsKK30KKwogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cG9wTWFw
cGluZ3NUb0FuY2VzdG9yKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yUmVu
ZGVyZXIpCiB7CiAgICAgQVNTRVJUKG1fbWFwcGluZy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAppbmRleCA5MmQ1MjA5Li40NGZiYmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaApAQCAtMzYs
NiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlbmRlckZsb3dUaHJl
YWQ7CiBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlckxheWVyTW9kZWxPYmplY3Q7CiBj
bGFzcyBSZW5kZXJWaWV3OwpAQCAtMTEwLDYgKzExMSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJl
bmRlclZpZXcgZ2V0cyBzcGVjaWFsIHRyZWF0bWVudCwgYmVjYXVzZSBpdCBhcHBsaWVzIHRoZSBz
Y3JvbGwgb2Zmc2V0IG9ubHkgZm9yIGVsZW1lbnRzIGluc2lkZSBpbiBmaXhlZCBwb3NpdGlvbi4K
ICAgICB2b2lkIHB1c2hWaWV3KGNvbnN0IFJlbmRlclZpZXcqLCBjb25zdCBMYXlvdXRTaXplJiBz
Y3JvbGxPZmZzZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4KiA9IDApOworICAgIHZvaWQg
cHVzaFJlbmRlckZsb3dUaHJlYWQoY29uc3QgUmVuZGVyRmxvd1RocmVhZCopOwogCiBwcml2YXRl
OgogICAgIHZvaWQgbWFwVG9Db250YWluZXIoVHJhbnNmb3JtU3RhdGUmLCBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBjb250YWluZXIgPSAwKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDViYWQ5YTguLmZkMjc1NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODQsNiArODQsNyBAQAogI2luY2x1
ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRl
ICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNp
bmNsdWRlICJSZW5kZXJSZXBsaWNhLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCkBAIC00MDMxLDcgKzQwMzIsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludExpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxpc3Qs
IEdyYXBoaWNzQ29udGV4dCogY29udGV4dAogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0LT5zaXplKCk7ICsraSkgewogICAgICAgICBSZW5kZXJMYXllciogY2hpbGRMYXllciA9IGxp
c3QtPmF0KGkpOwotICAgICAgICBpZiAoY2hpbGRMYXllci0+aXNPdXRPZkZsb3dSZW5kZXJGbG93
VGhyZWFkKCkpCisgICAgICAgIGlmIChjaGlsZExheWVyLT5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5n
R3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmICghY2hpbGRMYXllci0+aXNQYWdpbmF0ZWQoKSkKQEAgLTQ0NDUsNiArNDQ0Niwy
MyBAQCBFbGVtZW50KiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRWxlbWVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK1JlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmxvd1Ro
cmVhZEFuY2VzdG9yKCkgY29uc3QKK3sKKyAgICBSZW5kZXJMYXllciogY3VyciA9IHBhcmVudCgp
OworICAgIGZvciAoOyBjdXJyICYmICFjdXJyLT5pc1JlbmRlckZsb3dUaHJlYWQoKTsgY3VyciA9
IGN1cnItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChjdXJyLT5pc1N0YWNraW5nQ29udGFpbmVy
KCkgJiYgY3Vyci0+aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgICAgIC8vIFdlIG9ubHkgYWRq
dXN0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgbGV2ZWwgb2YgbGF5ZXJzLgorICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGN1cnI7Cit9CisKK2Jv
b2wgUmVuZGVyTGF5ZXI6OmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVy
UmVnaW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCkuaXNSZW5kZXJGbG93VGhy
ZWFkKCkgJiYgdG9SZW5kZXJGbG93VGhyZWFkKHJlbmRlcmVyKCkpLmNvbGxlY3RzR3JhcGhpY3NM
YXllcnNVbmRlclJlZ2lvbnMoKTsKK30KKwogLy8gQ29tcHV0ZSB0aGUgei1vZmZzZXQgb2YgdGhl
IHBvaW50IGluIHRoZSB0cmFuc2Zvcm1TdGF0ZS4KIC8vIFRoaXMgaXMgZWZmZWN0aXZlbHkgcHJv
amVjdGluZyBhIHJheSBub3JtYWwgdG8gdGhlIHBsYW5lIG9mIGFuY2VzdG9yLCBmaW5kaW5nIHdo
ZXJlIHRoYXQKIC8vIHJheSBpbnRlcnNlY3RzIHRhcmdldCwgYW5kIGNvbXB1dGluZyB0aGUgeiBk
ZWx0YSBiZXR3ZWVuIHRob3NlIHR3byBwb2ludHMuCkBAIC00ODkwLDcgKzQ5MDgsNyBAQCBSZW5k
ZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiBs
aXN0LCBSZW5kZXJMYXllciogcgogICAgIFJlbmRlckxheWVyKiByZXN1bHRMYXllciA9IDA7CiAg
ICAgZm9yIChpbnQgaSA9IGxpc3QtPnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAg
IFJlbmRlckxheWVyKiBjaGlsZExheWVyID0gbGlzdC0+YXQoaSk7Ci0gICAgICAgIGlmIChjaGls
ZExheWVyLT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgaWYgKGNoaWxk
TGF5ZXItPmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygp
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFJlbmRlckxheWVyKiBoaXRMYXllciA9
IDA7CiAgICAgICAgIEhpdFRlc3RSZXN1bHQgdGVtcFJlc3VsdChyZXN1bHQuaGl0VGVzdExvY2F0
aW9uKCkpOwpAQCAtNTQ5Nyw3ICs1NTE1LDggQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Y2Fs
Y3VsYXRlTGF5ZXJCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIGMKICAg
ICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAgIFJlbmRl
ckxheWVyKiBjdXJMYXllciA9IHBvc1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgaWYg
KGZsYWdzICYgSW5jbHVkZUNvbXBvc2l0ZWREZXNjZW5kYW50cyB8fCAhY3VyTGF5ZXItPmlzQ29t
cG9zaXRlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGlz
IGlnbm9yZWQgd2hlbiB3ZSBjYWxjdWxhdGUgdGhlIGJvdW5kcyBvZiB0aGUgUmVuZGVyVmlldy4K
KyAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBJbmNsdWRlQ29tcG9zaXRlZERlc2NlbmRhbnRzIHx8
ICFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpICYmICFjdXJMYXllci0+aXNGbG93VGhyZWFkQ29s
bGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpIHsKICAgICAgICAgICAgICAgICBM
YXlvdXRSZWN0IGNoaWxkVW5pb25Cb3VuZHMgPSBjdXJMYXllci0+Y2FsY3VsYXRlTGF5ZXJCb3Vu
ZHModGhpcywgMCwgZGVzY2VuZGFudEZsYWdzKTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5k
cy51bml0ZShjaGlsZFVuaW9uQm91bmRzKTsKICAgICAgICAgICAgIH0KQEAgLTU1MTAsNyArNTUy
OSw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0
IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBjCiAgICAgICAgICAgICBSZW5kZXJMYXllciog
Y3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAvLyBSZW5kZXJW
aWV3IHdpbGwgYWx3YXlzIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgZG9jdW1lbnQsIGJlZm9yZSBy
ZWFjaGluZyB0aGlzIHBvaW50LAogICAgICAgICAgICAgLy8gc28gdGhlcmUncyBubyB3YXkgd2Ug
Y291bGQgaGl0IGEgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGhlcmUuCi0gICAgICAgICAgICBBU1NF
UlQoIWN1ckxheWVyLT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSk7CisgICAgICAgICAg
ICBBU1NFUlQoIWN1ckxheWVyLT5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNV
bmRlclJlZ2lvbnMoKSk7CiAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBJbmNsdWRlQ29tcG9zaXRl
ZERlc2NlbmRhbnRzIHx8ICFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgICAg
ICAgICBMYXlvdXRSZWN0IGN1ckFic0JvdW5kcyA9IGN1ckxheWVyLT5jYWxjdWxhdGVMYXllckJv
dW5kcyh0aGlzLCAwLCBkZXNjZW5kYW50RmxhZ3MpOwogICAgICAgICAgICAgICAgIHVuaW9uQm91
bmRzLnVuaXRlKGN1ckFic0JvdW5kcyk7CkBAIC01NzMzLDcgKzU3NTIsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAoIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7Ci0g
ICAgICAgIGlmIChyZW5kZXJlcigpLmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAg
ICAgICBpZiAoaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25z
KCkpCiAgICAgICAgICAgICB0b1JlbmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuc2V0TmVlZHNM
YXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKTsKICAgICAgICAgY29tcG9zaXRvcigpLnNldENv
bXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKQEAgLTU3NTksNyArNTc3OCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxvd0xpc3QoKQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVz
dHJveWVkKCkpIHsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93
VGhyZWFkKCkpCisgICAgICAgIGlmIChpc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXll
cnNVbmRlclJlZ2lvbnMoKSkKICAgICAgICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZChyZW5kZXJl
cigpKS5zZXROZWVkc0xheWVyVG9SZWdpb25NYXBwaW5nc1VwZGF0ZSgpOwogICAgICAgICBjb21w
b3NpdG9yKCkuc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgICAgICBpZiAo
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyMDE4ODVjLi45YzdjZDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNzUwLDYgKzc1MCw3IEBAIHB1
YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzQ29t
cG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZyAhPSAwOyB9CisgICAgYm9vbCBoYXND
b21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc0NvbXBvc2l0aW5nRGVz
Y2VuZGFudDsgfQogICAgIGJvb2wgaGFzQ29tcG9zaXRlZE1hc2soKSBjb25zdDsKICAgICBSZW5k
ZXJMYXllckJhY2tpbmcqIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7
IH0KICAgICBSZW5kZXJMYXllckJhY2tpbmcqIGVuc3VyZUJhY2tpbmcoKTsKQEAgLTgxMyw3ICs4
MTQsMTkgQEAgcHVibGljOgogICAgIFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVh
c29uIHZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24+KG1f
dmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pOyB9CiAjZW5kaWYKICAgICAK
KyAgICBib29sIGlzUmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCku
aXNSZW5kZXJGbG93VGhyZWFkKCk7IH0KICAgICBib29sIGlzT3V0T2ZGbG93UmVuZGVyRmxvd1Ro
cmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhy
ZWFkKCk7IH0KKyAgICBib29sIGlzSW5zaWRlRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJl
bmRlcmVyKCkuZmxvd1RocmVhZFN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVGbG93
VGhyZWFkOyB9CisgICAgYm9vbCBpc0luc2lkZU91dE9mRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0
dXJuIHJlbmRlcmVyKCkuZmxvd1RocmVhZFN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpJbnNpZGVP
dXRPZkZsb3dUaHJlYWQ7IH0KKyAgICBib29sIGlzRGlydHlSZW5kZXJGbG93VGhyZWFkKCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlbmRlckZsb3dUaHJlYWQoKSk7CisgICAgICAg
IHJldHVybiBtX3pPcmRlckxpc3RzRGlydHkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5OworICAg
IH0KKworICAgIGlubGluZSBib29sIGlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVy
c1VuZGVyUmVnaW9ucygpIGNvbnN0OworCisgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0Zsb3dU
aHJlYWRBbmNlc3RvcigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGVudW0gQ29sbGVjdExheWVy
c0JlaGF2aW9yIHsgU3RvcEF0U3RhY2tpbmdDb250ZXh0cywgU3RvcEF0U3RhY2tpbmdDb250YWlu
ZXJzIH07CkBAIC0xMDgyLDcgKzEwOTUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgdXNlUmVnaW9u
QmFzZWRDb2x1bW5zKCkgY29uc3Q7CiAgICAgCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAgICAKLSAgICBib29sIGhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50OyB9CiAgICAgdm9pZCBzZXRIYXNDb21wb3Np
dGluZ0Rlc2NlbmRhbnQoYm9vbCBiKSAgeyBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCA9IGI7
IH0KICAgICAKICAgICBlbnVtIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA5YWFiNjVm
Li5hYzlkNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcApAQCAtNDgsMTAgKzQ4LDEzIEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAj
aW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIK
KyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0
b3IuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCIKQEAgLTQwOCw2ICs0MTEsOSBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c2hvdWxkQ2xpcENvbXBvc2l0ZWRCb3VuZHMoKSBjb25zdAogICAgIGlmIChsYXll
ck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcobV9vd25p
bmdMYXllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX293bmluZ0xheWVy
LmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDYgKzY1
MCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0
cnkoKQogICAgIEludFJlY3QgcmVsYXRpdmVDb21wb3NpdGluZ0JvdW5kcyhsb2NhbENvbXBvc2l0
aW5nQm91bmRzKTsKICAgICByZWxhdGl2ZUNvbXBvc2l0aW5nQm91bmRzLm1vdmVCeShkZWx0YSk7
CiAKKyAgICBhZGp1c3RBbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzRm9yRmxvd1RocmVhZChhbmNl
c3RvckNvbXBvc2l0aW5nQm91bmRzLCBjb21wQW5jZXN0b3IpOworCiAgICAgSW50UG9pbnQgZ3Jh
cGhpY3NMYXllclBhcmVudExvY2F0aW9uOwogICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFu
Y2VzdG9yLT5iYWNraW5nKCktPmhhc0NsaXBwaW5nTGF5ZXIoKSkgewogICAgICAgICAvLyBJZiB0
aGUgY29tcG9zaXRpbmcgYW5jZXN0b3IgaGFzIGEgbGF5ZXIgdG8gY2xpcCBjaGlsZHJlbiwgd2Ug
cGFyZW50IGluIHRoYXQsIGFuZCB0aGVyZWZvcmUKQEAgLTg0MSw2ICs4NDksNDIgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgcmVn
aXN0ZXJTY3JvbGxpbmdMYXllcnMoKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFk
anVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKEludFJlY3QmIGFuY2Vz
dG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2Vz
dG9yKSBjb25zdAoreworICAgIGlmICghbV9vd25pbmdMYXllci5pc0luc2lkZUZsb3dUaHJlYWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyTGF5ZXIqIGZsb3dUaHJlYWRMYXllciA9
IG1fb3duaW5nTGF5ZXIuaXNJbnNpZGVPdXRPZkZsb3dUaHJlYWQoKSA/IG1fb3duaW5nTGF5ZXIu
c3RhY2tpbmdDb250YWluZXIoKSA6IG1fb3duaW5nTGF5ZXIuZW5jbG9zaW5nRmxvd1RocmVhZEFu
Y2VzdG9yKCk7CisgICAgaWYgKGZsb3dUaHJlYWRMYXllciAmJiBmbG93VGhyZWFkTGF5ZXItPmlz
UmVuZGVyRmxvd1RocmVhZCgpKSB7CisgICAgICAgIFJlbmRlckZsb3dUaHJlYWQmIGZsb3dUaHJl
YWQgPSB0b1JlbmRlckZsb3dUaHJlYWQoZmxvd1RocmVhZExheWVyLT5yZW5kZXJlcigpKTsKKyAg
ICAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5
ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQgaXMgbm90IGNvbXBvc2l0ZWQsIGFzIHdlIG5lZWQgaXQgdG8gcGFpbnQgdGhlIAorICAg
ICAgICAgICAgLy8gYmFja2dyb3VuZCBsYXllciBvZiB0aGUgcmVnaW9ucy4gV2UgbmVlZCB0byBj
b21wZW5zYXRlIGZvciB0aGF0IGJ5IG1hbnVhbGx5CisgICAgICAgICAgICAvLyBzdWJ0cmFjdGlu
ZyB0aGUgcG9zaXRpb24gb2YgdGhlIGZsb3ctdGhyZWFkLgorICAgICAgICAgICAgSW50UG9pbnQg
Zmxvd1Bvc2l0aW9uOworICAgICAgICAgICAgZmxvd1RocmVhZExheWVyLT5jb252ZXJ0VG9QaXhl
bFNuYXBwZWRMYXllckNvb3Jkcyhjb21wb3NpdGluZ0FuY2VzdG9yLCBmbG93UG9zaXRpb24pOwor
ICAgICAgICAgICAgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcy5tb3ZlQnkoZmxvd1Bvc2l0aW9u
KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1vdmUgdGhlIGFuY2VzdG9yIHBvc2l0aW9uIGF0
IHRoZSB0b3Agb2YgdGhlIHJlZ2lvbiB3aGVyZSB0aGUgY29tcG9zaXRlZCBsYXllciBpcyBnb2lu
ZyB0byBkaXNwbGF5LgorICAgICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcGFyZW50UmVn
aW9uID0gZmxvd1RocmVhZC5jYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIobV9vd25pbmdM
YXllcik7CisgICAgICAgIGlmIChwYXJlbnRSZWdpb24pIHsKKyAgICAgICAgICAgIEludFBvaW50
IGZsb3dEZWx0YTsKKyAgICAgICAgICAgIG1fb3duaW5nTGF5ZXIuY29udmVydFRvUGl4ZWxTbmFw
cGVkTGF5ZXJDb29yZHMoZmxvd1RocmVhZExheWVyLCBmbG93RGVsdGEpOworICAgICAgICAgICAg
cGFyZW50UmVnaW9uLT5hZGp1c3RSZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0
KGZsb3dEZWx0YSwgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcyk7CisgICAgICAgICAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogbGF5ZXJPd25lciA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QocGFy
ZW50UmVnaW9uLT5sYXllck93bmVyKCkpOworICAgICAgICAgICAgaWYgKGxheWVyT3duZXItPmhh
c0xheWVyKCkgJiYgbGF5ZXJPd25lci0+bGF5ZXIoKS0+YmFja2luZygpKSB7CisgICAgICAgICAg
ICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbiBwcm9wYWdhdGVzIGl0cyBib3JkZXJz
LCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRvd3MgdG8gbGF5ZXJzIGluc2lkZSBpdC4K
KyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGNvbXBvc2l0ZWQgYm91bmRzIG9mIHRo
ZSBSZW5kZXJSZWdpb24gYXJlIGFscmVhZHkgY2FsY3VsYXRlZAorICAgICAgICAgICAgICAgIC8v
IGJlY2F1c2UgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRy
ZWUgd2lsbCBvbmx5CisgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSBvbiB0aGUgY29udGVudCBv
ZiB0aGUgcmVnaW9uIGFmdGVyIHRoZSByZWdpb24gaXRzZWxmIGlzIGNvbXB1dGVkLgorICAgICAg
ICAgICAgICAgIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMubW92ZUJ5KHJvdW5kZWRJbnRQb2lu
dChsYXllck93bmVyLT5sYXllcigpLT5iYWNraW5nKCktPmNvbXBvc2l0ZWRCb3VuZHMoKS5sb2Nh
dGlvbigpKSk7CisgICAgICAgICAgICAgICAgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcy5tb3Zl
KC1sYXllck93bmVyLT5ib3JkZXJBbmRQYWRkaW5nU3RhcnQoKSwgLWxheWVyT3duZXItPmJvcmRl
ckFuZFBhZGRpbmdCZWZvcmUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
CisKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEaXJlY3RseUNvbXBvc2l0ZWRDb250
ZW50cyhib29sIGlzU2ltcGxlQ29udGFpbmVyLCBib29sJiBkaWRVcGRhdGVDb250ZW50c1JlY3Qp
CiB7CiAgICAgaWYgKCFtX293bmluZ0xheWVyLmhhc1Zpc2libGVDb250ZW50KCkpCkBAIC0xNTcw
LDcgKzE2MTQsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6aXNTaW1wbGVDb250YWluZXJD
b21wb3NpdGluZ0xheWVyKCkgY29uc3QKICAgICBpZiAocGFpbnRzQm94RGVjb3JhdGlvbnMoKSB8
fCBwYWludHNDaGlsZHJlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocmVu
ZGVyZXIoKS5pc1JlbmRlclJlZ2lvbigpKQorICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyTmFt
ZWRGbG93RnJhZ21lbnRDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJWaWV3KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCA5ZjUzZjMyLi4zNmQyZjk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0yNzgsNiAr
Mjc4LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0
LCBQYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSk7CiAKKyAgICAvLyBI
ZWxwZXIgZnVuY3Rpb24gZm9yIHVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeS4KKyAgICB2b2lk
IGFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKEludFJlY3QmIGFu
Y2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0Fu
Y2VzdG9yKSBjb25zdDsKKwogICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGdyYXBoaWNzTGF5ZXJU
b0NTU1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCk7CiAgICAgc3RhdGljIEFuaW1hdGVkUHJv
cGVydHlJRCBjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBlMDE1MzZkLi5kMWEwZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDYsMTAgKzQ2LDEyIEBACiAjaW5jbHVk
ZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRnVsbFNjcmVlbi5oIgogI2luY2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVk
ZSAiUmVuZGVySUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5j
bHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNh
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBA
IC05MzEsOCArOTMzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgbGF5ZXIudXBk
YXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CiAgICAgbGF5ZXIudXBkYXRlTGF5ZXJMaXN0
c0lmTmVlZGVkKCk7CiAKLSAgICBpZiAobGF5ZXIuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFk
KCkpCisgICAgaWYgKGxheWVyLmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1Vu
ZGVyUmVnaW9ucygpKSB7CisgICAgICAgIFJlbmRlckZsb3dUaHJlYWQmIGZsb3dUaHJlYWQgPSB0
b1JlbmRlckZsb3dUaHJlYWQobGF5ZXIucmVuZGVyZXIoKSk7CisgICAgICAgIGxheWVyLnNldEhh
c0NvbXBvc2l0aW5nRGVzY2VuZGFudChmbG93VGhyZWFkLmhhc0NvbXBvc2l0aW5nUmVnaW9uRGVz
Y2VuZGFudCgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChvdmVybGFwTWFw
KQogICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnB1c2hNYXBwaW5nc1RvQW5jZXN0
b3IoJmxheWVyLCBhbmNlc3RvckxheWVyKTsKQEAgLTEwMTMsNiArMTAxOCwxNSBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRl
ckxheWVyKiBhbmNlc3RvcgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorCisgICAg
aWYgKGxheWVyLnJlbmRlcmVyKCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigp
KSB7CisgICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBjb2xsZWN0IGxheWVycyBmcm9tIHRoZSBS
ZW5kZXJGbG93VGhyZWFkIGludG8gdGhlIEdyYXBoaWNzTGF5ZXIgb2YgdGhlIHBhcmVudCBvZiB0
aGUKKyAgICAgICAgLy8gYW5vbnltb3VzIFJlbmRlclJlZ2lvbiwgYnV0IGZpcnN0IHdlIG5lZWQg
dG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhcmVudCBpdHNlbGYgb2YgdGhlIHJlZ2lvbiBpcyBnb2lu
ZyB0bworICAgICAgICAvLyBoYXZlIGEgY29tcG9zaXRlZCBsYXllci4gV2Ugb25seSB3YW50IHRv
IG1ha2UgcmVnaW9ucyBjb21wb3NpdGVkIHdoZW4gdGhlcmUncyBhbiBhY3R1YWwgbGF5ZXIgdGhh
dCB3ZQorICAgICAgICAvLyBuZWVkIHRvIG1vdmUgdG8gdGhhdCByZWdpb24uCisgICAgICAgIGNv
bXB1dGVSZWdpb25Db21wb3NpdGluZ1JlcXVpcmVtZW50cyh0b1JlbmRlckJsb2NrRmxvdyhsYXll
ci5yZW5kZXJlcigpKS5yZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpLCBvdmVybGFwTWFwLCBjaGls
ZFN0YXRlLCBsYXllcnNDaGFuZ2VkLCBhbnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pOworICAg
IH0KKwogICAgIAogICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3Qg
PSBsYXllci5ub3JtYWxGbG93TGlzdCgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBz
aXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsgaSA8IHNpemU7ICsraSkKQEAgLTExMTYsNiAr
MTEzMCwyOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgICAgICBvdmVybGFwTWFwLT5n
ZW9tZXRyeU1hcCgpLnBvcE1hcHBpbmdzVG9BbmNlc3RvcihhbmNlc3RvckxheWVyKTsKIH0KIAor
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVSZWdpb25Db21wb3NpdGluZ1JlcXVp
cmVtZW50cyhSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uLCBPdmVybGFwTWFwKiBvdmVy
bGFwTWFwLCBDb21wb3NpdGluZ1N0YXRlJiBjaGlsZFN0YXRlLCBib29sJiBsYXllcnNDaGFuZ2Vk
LCBib29sJiBhbnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pCit7CisgICAgaWYgKCFyZWdpb24t
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxv
d1RocmVhZCA9IHJlZ2lvbi0+Zmxvd1RocmVhZCgpOworICAgIAorICAgIGlmIChvdmVybGFwTWFw
KQorICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnB1c2hSZW5kZXJGbG93VGhyZWFk
KGZsb3dUaHJlYWQpOworCisgICAgaWYgKGNvbnN0IFJlbmRlckxheWVyTGlzdCogbGF5ZXJMaXN0
ID0gZmxvd1RocmVhZC0+Z2V0TGF5ZXJMaXN0Rm9yUmVnaW9uKHJlZ2lvbikpIHsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGF5ZXJMaXN0LT5zaXplKCk7IGkgPCBsaXN0
U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciYgY3VyTGF5ZXIgPSAqbGF5ZXJM
aXN0LT5hdChpKTsKKyAgICAgICAgICAgIEFTU0VSVChmbG93VGhyZWFkLT5yZWdpb25Gb3JDb21w
b3NpdGVkTGF5ZXIoY3VyTGF5ZXIpID09IHJlZ2lvbik7CisgICAgICAgICAgICBjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMoZmxvd1RocmVhZC0+bGF5ZXIoKSwgY3VyTGF5ZXIsIG92ZXJs
YXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQsIGFueURlc2NlbmRhbnRIYXMzRFRyYW5z
Zm9ybSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAob3ZlcmxhcE1hcCkKKyAgICAgICAg
b3ZlcmxhcE1hcC0+Z2VvbWV0cnlNYXAoKS5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocmVnaW9uLT5s
YXllck93bmVyKCkpOworfQorCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0Q29tcG9z
aXRpbmdQYXJlbnQoUmVuZGVyTGF5ZXImIGNoaWxkTGF5ZXIsIFJlbmRlckxheWVyKiBwYXJlbnRM
YXllcikKIHsKICAgICBBU1NFUlQoIXBhcmVudExheWVyIHx8IGNoaWxkTGF5ZXIuYW5jZXN0b3JD
b21wb3NpdGluZ0xheWVyKCkgPT0gcGFyZW50TGF5ZXIpOwpAQCAtMTE1OSw3ICsxMTk1LDggQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShS
ZW5kZXJMYXllciYgbGF5ZXIsIFZlY3QKICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIG9ubHkgZG8g
d29yayBoZXJlIHRoYXQgaXMgaW5kZXBlbmRlbnQgb2Ygd2hldGhlciB0aGUgZGVzY2VuZGFudCBs
YXllcnMKICAgICAvLyBoYXZlIGJlZW4gcHJvY2Vzc2VkLiBjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoKSB3aWxsIGFscmVhZHkgaGF2ZSBkb25lIHRoZSByZXBhaW50IGlmIG5lY2Vzc2Fy
eS4KIAotICAgIGlmIChsYXllci5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAv
LyBEbyBub3QgaXRlcmF0ZSB0aGUgUmVuZGVyRmxvd1RocmVhZCBkaXJlY3RseS4gV2UgYXJlIGdv
aW5nIHRvIGNvbGxlY3QgY29tcG9zaXRlZCBsYXllcnMgYXMgcGFydCBvZiByZWdpb25zLgorICAg
IGlmIChsYXllci5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lv
bnMoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFJlbmRlckxheWVyQmFja2luZyogbGF5
ZXJCYWNraW5nID0gbGF5ZXIuYmFja2luZygpOwpAQCAtMTIxMCw2ICsxMjQ3LDkgQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJM
YXllciYgbGF5ZXIsIFZlY3QKICAgICAgICAgICAgIGNoaWxkTGlzdC5hcHBlbmQobGF5ZXJCYWNr
aW5nLT5mb3JlZ3JvdW5kTGF5ZXIoKSk7CiAgICAgfQogCisgICAgaWYgKGxheWVyLnJlbmRlcmVy
KCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQorICAgICAgICByZWJ1aWxk
UmVnaW9uQ29tcG9zaXRpbmdMYXllclRyZWUodG9SZW5kZXJCbG9ja0Zsb3cobGF5ZXIucmVuZGVy
ZXIoKSkucmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSwgbGF5ZXJDaGlsZHJlbiwgZGVwdGggKyAx
KTsKKwogICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBsYXll
ci5ub3JtYWxGbG93TGlzdCgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0g
bm9ybWFsRmxvd0xpc3QtPnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAgICAgIHJlYnVp
bGRDb21wb3NpdGluZ0xheWVyVHJlZSgqbm9ybWFsRmxvd0xpc3QtPmF0KGkpLCBjaGlsZExpc3Qs
IGRlcHRoICsgMSk7CkBAIC0xMjUzLDYgKzEyOTMsMjIgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJMYXllciYgbGF5ZXIsIFZl
Y3QKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkUmVnaW9u
Q29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHJlZ2lvbiwgVmVj
dG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRMaXN0LCBpbnQgZGVwdGgpCit7CisgICAgaWYgKCFy
ZWdpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVuZGVyRmxvd1RocmVh
ZCogZmxvd1RocmVhZCA9IHJlZ2lvbi0+Zmxvd1RocmVhZCgpOworICAgIEFTU0VSVChmbG93VGhy
ZWFkLT5jb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpOworICAgIGlmIChjb25z
dCBSZW5kZXJMYXllckxpc3QqIGxheWVyTGlzdCA9IGZsb3dUaHJlYWQtPmdldExheWVyTGlzdEZv
clJlZ2lvbihyZWdpb24pKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBsaXN0U2l6ZSA9
IGxheWVyTGlzdC0+c2l6ZSgpOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVu
ZGVyTGF5ZXImIGN1ckxheWVyID0gKmxheWVyTGlzdC0+YXQoaSk7CisgICAgICAgICAgICBBU1NF
UlQoZmxvd1RocmVhZC0+cmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKGN1ckxheWVyKSA9PSByZWdp
b24pOworICAgICAgICAgICAgcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKGN1ckxheWVyLCBj
aGlsZExpc3QsIGRlcHRoICsgMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRDaGFuZ2VMb2NhdGlvbihjb25zdCBJbnRQb2lu
dCYgY29udGVudHNPZmZzZXQpCiB7CiAgICAgaWYgKG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXll
cikKQEAgLTE3NzEsOSArMTgyNywxOSBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVx
dWlyZXNDb21wb3NpdGluZ0xheWVyKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgUgogCiBib29s
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FuQmVDb21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVy
JiBsYXllcikgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogV2UgZGlzYWJsZSBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBmb3IgZWxlbWVudHMgaW4gYSBSZW5kZXJGbG93VGhyZWFkIGFzIGl0IGRvZXNu
J3Qgd29yayBwcm9wZXJseS4KLSAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84NDkwMCB0
byByZS1lbmFibGUgaXQuCi0gICAgcmV0dXJuIG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyAm
JiBsYXllci5pc1NlbGZQYWludGluZ0xheWVyKCkgJiYgbGF5ZXIucmVuZGVyZXIoKS5mbG93VGhy
ZWFkU3RhdGUoKSA9PSBSZW5kZXJFbGVtZW50OjpOb3RJbnNpZGVGbG93VGhyZWFkOworICAgIGlm
IChtX2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgJiYgbGF5ZXIuaXNTZWxmUGFpbnRpbmdMYXll
cigpKSB7CisgICAgICAgIGlmICghbGF5ZXIuaXNJbnNpZGVGbG93VGhyZWFkKCkpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAvLyBDU1MgUmVnaW9ucyBmbG93IHRocmVhZHMg
ZG8gbm90IG5lZWQgdG8gYmUgY29tcG9zaXRlZCBhcyB3ZSB1c2UgY29tcG9zaXRlZCBSZW5kZXJS
ZWdpb25zCisgICAgICAgIC8vIHRvIHJlbmRlciB0aGUgYmFja2dyb3VuZCBvZiB0aGUgUmVuZGVy
Rmxvd1RocmVhZC4KKyAgICAgICAgaWYgKGxheWVyLmlzUmVuZGVyRmxvd1RocmVhZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEEgZmFzdGVyIHdheSBvZiBzYXlp
bmcgbGF5ZXIuZW5jbG9zaW5nRmxvd1RocmVhZExheWVyKCktPmlzRmxvd1RocmVhZENvbGxlY3Rp
bmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpCisgICAgICAgIHJldHVybiBsYXllci5pc0lu
c2lkZU91dE9mRmxvd1RocmVhZCgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc093bkJhY2tpbmdTdG9yZShjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9y
TGF5ZXIsIGNvbnN0IEludFJlY3QmIGxheWVyQ29tcG9zaXRlZEJvdW5kc0luQW5jZXN0b3IsIGNv
bnN0IEludFJlY3QmIGFuY2VzdG9yQ29tcG9zaXRlZEJvdW5kcykgY29uc3QKQEAgLTIxNTQsOCAr
MjIyMCw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5n
Rm9ySW5kaXJlY3RSZWFzb24oUmVuZGVyTGF5ZXJNb2RlCiAgICAgUmVuZGVyTGF5ZXImIGxheWVy
ID0gKnRvUmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIpLmxheWVyKCk7CiAKICAgICAvLyBX
aGVuIGEgbGF5ZXIgaGFzIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMsIHNvbWUgZWZmZWN0cywgbGlr
ZSAyZCB0cmFuc2Zvcm1zLCBmaWx0ZXJzLCBtYXNrcyBldGMgbXVzdCBiZSBpbXBsZW1lbnRlZAot
ICAgIC8vIHZpYSBjb21wb3NpdGluZyBzbyB0aGF0IHRoZXkgYWxzbyBhcHBseSB0byB0aG9zZSBj
b21wb3NpdGVkIGRlc2NkZW5kYW50cy4KLSAgICBpZiAoaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRz
ICYmIChsYXllci50cmFuc2Zvcm0oKSB8fCByZW5kZXJlci5jcmVhdGVzR3JvdXAoKSB8fCByZW5k
ZXJlci5oYXNSZWZsZWN0aW9uKCkpKSB7CisgICAgLy8gdmlhIGNvbXBvc2l0aW5nIHNvIHRoYXQg
dGhleSBhbHNvIGFwcGx5IHRvIHRob3NlIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMuCisgICAgaWYg
KGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cyAmJiAobGF5ZXIudHJhbnNmb3JtKCkgfHwgcmVuZGVy
ZXIuY3JlYXRlc0dyb3VwKCkgfHwgcmVuZGVyZXIuaGFzUmVmbGVjdGlvbigpIHx8IHJlbmRlcmVy
LmlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnRDb250YWluZXIoKSkpIHsKICAgICAgICAgcmVhc29u
ID0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JHcmFwaGljYWxFZmZlY3Q7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0Nzc2MmFiLi5lNzgzZjM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xh
c3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOwogY2xhc3MgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q7CitjbGFzcyBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDsKIGNsYXNz
IFJlbmRlclZpZGVvOwogY2xhc3MgUmVuZGVyV2lkZ2V0OwogY2xhc3MgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I7CkBAIC0xNDEsNyArMTQyLDcgQEAgcHVibGljOgogICAgIC8vIHdlIGRpc2NvdmVyIHRo
YXQgYW4gaWZyYW1lIGlzIG92ZXJsYXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lkIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwogCi0gICAgLy8gVXBkYXRlIHRoZSBtYXBz
IHRoYXQgd2UgdXNlIHRvIGRpc3RyaWJ1dGUgbGF5ZXJzIHRvIGNvcmVzcG9uZGluZyBSZW5kZXJS
ZWdpb25zLgorICAgIC8vIFVwZGF0ZSB0aGUgbWFwcyB0aGF0IHdlIHVzZSB0byBkaXN0cmlidXRl
IGxheWVycyB0byBjb3Jlc3BvbmRpbmcgcmVnaW9ucy4KICAgICB2b2lkIHVwZGF0ZVJlbmRlckZs
b3dUaHJlYWRMYXllcnNJZk5lZWRlZCgpOwogICAgIAogICAgIC8vIFVwZGF0ZSB0aGUgY29tcG9z
aXRpbmcgc3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1cm5zIHRydWUgaWYgdGhhdCBzdGF0
ZSBjaGFuZ2VkLgpAQCAtMzIzLDEwICszMjQsMTYgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBhbnkgbGF5ZXIncyBjb21wb3NpdGluZyBjaGFuZ2VkCiAgICAgdm9pZCBjb21w
dXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIFJl
bmRlckxheWVyJiwgT3ZlcmxhcE1hcCosIHN0cnVjdCBDb21wb3NpdGluZ1N0YXRlJiwgYm9vbCYg
bGF5ZXJzQ2hhbmdlZCwgYm9vbCYgZGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKKworICAgIHZv
aWQgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlck5hbWVkRmxvd0Zy
YWdtZW50KiwgT3ZlcmxhcE1hcCosIENvbXBvc2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFu
Z2VkLCBib29sJiBhbnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pOwogICAgIAogICAgIC8vIFJl
Y3Vyc2VzIGRvd24gdGhlIHRyZWUsIHBhcmVudGluZyBkZXNjZW5kYW50IGNvbXBvc2l0aW5nIGxh
eWVycyBhbmQgY29sbGVjdGluZyBhbiBhcnJheSBvZiBjaGlsZCBsYXllcnMgZm9yIHRoZSBjdXJy
ZW50IGNvbXBvc2l0aW5nIGxheWVyLgogICAgIHZvaWQgcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJU
cmVlKFJlbmRlckxheWVyJiwgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRHcmFwaGljc0xh
eWVyc09mRW5jbG9zaW5nTGF5ZXIsIGludCBkZXB0aCk7CiAKKyAgICAvLyBSZWN1cnNlcyBkb3du
IHRoZSBSZW5kZXJGbG93VGhyZWFkIHRyZWUsIHBhcmVudGluZyBkZXNjZW5kYW50IGNvbXBvc2l0
aW5nIGxheWVycyBhbmQgY29sbGVjdGluZyBhbiBhcnJheSBvZiBjaGlsZCAKKyAgICAvLyBsYXll
cnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvc2l0aW5nIGxheWVyIGNvcnJlc3BvbmRpbmcgdG8gdGhl
IGFub255bW91cyByZWdpb24gKHRoYXQgYmVsb25ncyB0byB0aGUgcmVnaW9uJ3MgcGFyZW50KS4K
KyAgICB2b2lkIHJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCosIFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNoaWxkTGlzdCwgaW50IGRlcHRo
KTsKKwogICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIHRyZWUsIHVwZGF0aW5nIGxheWVyIGdlb21l
dHJ5IG9ubHkuCiAgICAgdm9pZCB1cGRhdGVMYXllclRyZWVHZW9tZXRyeShSZW5kZXJMYXllciYs
IGludCBkZXB0aCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmNwcAppbmRleCBlYWExMmY3Li41MGE3MDRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTUwOCw2
ICs1MDgsMzYgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sbGVjdExheWVyRnJhZ21l
bnRzKExheWVyRnJhZ21lbnRzJiBmcmFnbWVudHMsIGNvbnMKICAgICB9CiB9CiAKK3ZvaWQgUmVu
ZGVyTXVsdGlDb2x1bW5TZXQ6OmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlv
blJlY3QoY29uc3QgSW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdpb25Cb3VuZHMp
Cit7CisgICAgTGF5b3V0VW5pdCBsYXllckxvZ2ljYWxUb3AgPSBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gbGF5ZXJPZmZzZXQueSgpIDogbGF5ZXJPZmZzZXQueCgpOworICAgIHVuc2lnbmVk
IHN0YXJ0Q29sdW1uID0gY29sdW1uSW5kZXhBdE9mZnNldChsYXllckxvZ2ljYWxUb3ApOworICAg
IAorICAgIExheW91dFVuaXQgY29sR2FwID0gY29sdW1uR2FwKCk7CisgICAgTGF5b3V0VW5pdCBj
b2xMb2dpY2FsV2lkdGggPSBjb21wdXRlZENvbHVtbldpZHRoKCk7CisgICAgCisgICAgTGF5b3V0
UmVjdCBmbG93VGhyZWFkUG9ydGlvbiA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdEF0KHN0YXJ0Q29s
dW1uKTsKKyAgICBMYXlvdXRQb2ludCB0cmFuc2xhdGlvbk9mZnNldDsKKworICAgIExheW91dFVu
aXQgaW5saW5lT2Zmc2V0ID0gc3RhcnRDb2x1bW4gKiAoY29sTG9naWNhbFdpZHRoICsgY29sR2Fw
KTsKKyAgICBpZiAoIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICAgICAg
aW5saW5lT2Zmc2V0ID0gLWlubGluZU9mZnNldDsKKyAgICB0cmFuc2xhdGlvbk9mZnNldC5zZXRY
KGlubGluZU9mZnNldCk7CisgICAgICAgIAorICAgIExheW91dFVuaXQgYmxvY2tPZmZzZXQgPSBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gLWZsb3dUaHJlYWRQb3J0aW9uLnkoKSA6IC1mbG93
VGhyZWFkUG9ydGlvbi54KCk7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHN0
eWxlKCktPndyaXRpbmdNb2RlKCkpKQorICAgICAgICBibG9ja09mZnNldCA9IC1ibG9ja09mZnNl
dDsKKyAgICB0cmFuc2xhdGlvbk9mZnNldC5zZXRZKGJsb2NrT2Zmc2V0KTsKKyAgICAKKyAgICBp
ZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHRyYW5zbGF0aW9uT2Zmc2V0
ID0gdHJhbnNsYXRpb25PZmZzZXQudHJhbnNwb3NlZFBvaW50KCk7CisKKyAgICAvLyBGSVhNRTog
VGhlIHRyYW5zbGF0aW9uIG5lZWRzIHRvIGluY2x1ZGUgdGhlIG11bHRpY29sdW1uIHNldCdzIGNv
bnRlbnQgb2Zmc2V0IHdpdGhpbiB0aGUKKyAgICAvLyBtdWx0aWNvbHVtbiBibG9jayBhcyB3ZWxs
LiBUaGlzIHdvbid0IGJlIGFuIGlzc3VlIHVudGlsIHdlIHN0YXJ0IGNyZWF0aW5nIG11bHRpcGxl
IG11bHRpY29sdW1uIHNldHMuCisgICAgCisgICAgcmVnaW9uQm91bmRzLm1vdmVCeShyb3VuZGVk
SW50UG9pbnQoLXRyYW5zbGF0aW9uT2Zmc2V0KSk7Cit9CisKIGNvbnN0IGNoYXIqIFJlbmRlck11
bHRpQ29sdW1uU2V0OjpyZW5kZXJOYW1lKCkgY29uc3QKIHsgICAgCiAgICAgcmV0dXJuICJSZW5k
ZXJNdWx0aUNvbHVtblNldCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtblNldC5oCmluZGV4IGRlZmZiZDEuLmNlYWIzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCkBAIC0xMTgsNiArMTE4LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0TGF5ZXJGcmFnbWVudHMoTGF5
ZXJGcmFnbWVudHMmLCBjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kaW5nQm94LCBjb25zdCBM
YXlvdXRSZWN0JiBkaXJ0eVJlY3QpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGFkanVz
dFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGxh
eWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdpb25Cb3VuZHMpIE9WRVJSSURFOworCiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBwYWludENv
bHVtblJ1bGVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5o
CmluZGV4IDYzNTI3NTAuLjE3YWQ2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCkBAIC01MSw2ICs1MSwxMyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzUHNldWRvRWxlbWVudFJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIHBhcmVu
dCgpICYmIHBhcmVudCgpLT5pc1BzZXVkb0VsZW1lbnQoKTsgfQogCisgICAgLy8gV2hlbiB0aGUg
Y29udGVudCBpbnNpZGUgdGhlIHJlZ2lvbiByZXF1aXJlcyB0aGUgcmVnaW9uIHRvIGhhdmUgYSBs
YXllciwgdGhlIGxheWVyIHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgcmVnaW9uJ3MKKyAgICAvLyBw
YXJlbnQgcmVuZGVyZXIgaW5zdGVhZC4KKyAgICAvLyBUaGlzIG1ldGhvZCByZXR1cm5zIHRoYXQg
cmVuZGVyZXIgaG9sZGluZyB0aGUgbGF5ZXIuCisgICAgLy8gVGhlIHJldHVybiB2YWx1ZSBtYXkg
YmUgbnVsbC4KKyAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBsYXllck93bmVyKCkgY29uc3Qg
eyByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCgp
ID8KKyAgICAgICAgdG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHBhcmVudCgpKSA6IG51bGxwdHI7
IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlQXV0b0xvZ2ljYWxI
ZWlnaHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmNwcAppbmRleCAyZjI2MGFiLi41ODJmNjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcApAQCAtNDYs
NiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6
UmVuZGVyTmFtZWRGbG93VGhyZWFkKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxXZWJL
aXROYW1lZEZsb3c+IG5hbWVkRmxvdykKICAgICA6IFJlbmRlckZsb3dUaHJlYWQoZG9jdW1lbnQp
CisgICAgLCBtX2Zsb3dUaHJlYWRDaGlsZExpc3QoYWRvcHRQdHIobmV3IEZsb3dUaHJlYWRDaGls
ZExpc3QoKSkpCiAgICAgLCBtX292ZXJzZXQodHJ1ZSkKICAgICAsIG1fbmFtZWRGbG93KG5hbWVk
RmxvdykKICAgICAsIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVy
TmFtZWRGbG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQpCkBAIC05
OSw4ICsxMDAsOCBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6dXBkYXRlV3JpdGluZ01v
ZGUoKQogCiBSZW5kZXJPYmplY3QqIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6bmV4dFJlbmRlcmVy
Rm9yTm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmJlZ2luKCk7Ci0gICAgRmxv
d1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRM
aXN0LmVuZCgpOworICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5iZWdpbigpOworICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC0+ZW5kKCk7CiAKICAg
ICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFJlbmRlck9iamVjdCogY2hpbGQg
PSAqaXQ7CkBAIC0xMTUsMTEgKzExNiwxMSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck5hbWVkRmxv
d1RocmVhZDo6bmV4dFJlbmRlcmVyRm9yTm9kZShOb2RlKiBub2RlKSBjb25zdAogCiBSZW5kZXJP
YmplY3QqIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cHJldmlvdXNSZW5kZXJlckZvck5vZGUoTm9k
ZSogbm9kZSkgY29uc3QKIHsKLSAgICBpZiAobV9mbG93VGhyZWFkQ2hpbGRMaXN0LmlzRW1wdHko
KSkKKyAgICBpZiAobV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgYmVnaW4g
PSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuYmVnaW4oKTsKLSAgICBGbG93VGhyZWFkQ2hpbGRMaXN0
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuZW5kKCk7CisgICAg
Rmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgYmVnaW4gPSBtX2Zsb3dUaHJlYWRD
aGlsZExpc3QtPmJlZ2luKCk7CisgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0
b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5lbmQoKTsKICAgICBGbG93VGhyZWFkQ2hp
bGRMaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGVuZDsKIAogICAgIGRvIHsKQEAgLTE0OSwxNCAr
MTUwLDE0IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjphZGRGbG93Q2hpbGQoUmVuZGVy
T2JqZWN0KiBuZXdDaGlsZCkKIAogICAgIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSBuZXh0
UmVuZGVyZXJGb3JOb2RlKGNoaWxkTm9kZSk7CiAgICAgaWYgKGJlZm9yZUNoaWxkKQotICAgICAg
ICBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuaW5zZXJ0QmVmb3JlKGJlZm9yZUNoaWxkLCBuZXdDaGls
ZCk7CisgICAgICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC0+aW5zZXJ0QmVmb3JlKGJlZm9yZUNo
aWxkLCBuZXdDaGlsZCk7CiAgICAgZWxzZQotICAgICAgICBtX2Zsb3dUaHJlYWRDaGlsZExpc3Qu
YWRkKG5ld0NoaWxkKTsKKyAgICAgICAgbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5hZGQobmV3Q2hp
bGQpOwogfQogCiB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxkKFJl
bmRlck9iamVjdCogY2hpbGQpCiB7Ci0gICAgbV9mbG93VGhyZWFkQ2hpbGRMaXN0LnJlbW92ZShj
aGlsZCk7CisgICAgbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5yZW1vdmUoY2hpbGQpOwogfQogCiBi
b29sIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGVwZW5kc09uKFJlbmRlck5hbWVkRmxvd1RocmVh
ZCogb3RoZXJSZW5kZXJGbG93VGhyZWFkKSBjb25zdApAQCAtNzI3LDQgKzcyOCwxNSBAQCB2b2lk
IFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Z2V0UmFuZ2VzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+ID4m
IHJhbmdlT2JqZWN0cywgY29ucwogICAgIH0KIH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKK2Jvb2wgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5
ZXJzVW5kZXJSZWdpb25zKCkgY29uc3QKK3sKKyAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbWFwIGxh
eWVycyB0byByZWdpb25zIGZvciBuYW1lZCBmbG93IHRocmVhZHMuCisgICAgLy8gTXVsdGktY29s
dW1uIHRocmVhZHMgYXJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIHJlZ2lvbnMgYW5kIGRvIG5v
dCByZXF1aXJlCisgICAgLy8gZGlzdHJpYnV0aW5nIHRoZSBsYXllcnMuCisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKaW5kZXggYjEwMmZmMi4uNzJkZmI5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtNTcsOSAr
NTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZEZsb3dDaGlsZChSZW5kZXJPYmplY3QqIG5l
d0NoaWxkKTsKICAgICB2b2lkIHJlbW92ZUZsb3dDaGlsZChSZW5kZXJPYmplY3QqKTsKLSAgICBi
b29sIGhhc0NoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gIW1fZmxvd1RocmVhZENoaWxkTGlzdC5p
c0VtcHR5KCk7IH0KKyAgICBib29sIGhhc0NoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gIW1fZmxv
d1RocmVhZENoaWxkTGlzdC0+aXNFbXB0eSgpOyB9CiAjaWZuZGVmIE5ERUJVRwotICAgIGJvb2wg
aGFzQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFk
Q2hpbGRMaXN0LmNvbnRhaW5zKGNoaWxkKTsgfQorICAgIGJvb2wgaGFzQ2hpbGQoUmVuZGVyT2Jq
ZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5jb250YWlu
cyhjaGlsZCk7IH0KICNlbmRpZgogCiAgICAgdm9pZCBwdXNoRGVwZW5kZW5jaWVzKFJlbmRlck5h
bWVkRmxvd1RocmVhZExpc3QmKTsKQEAgLTgwLDYgKzgwLDEwIEBAIHB1YmxpYzoKICAgICBib29s
IGlzTWFya2VkRm9yRGVzdHJ1Y3Rpb24oKSBjb25zdDsKICAgICB2b2lkIGdldFJhbmdlcyhWZWN0
b3I8UmVmUHRyPFJhbmdlPiA+JiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CiAKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCBib29sIGNvbGxlY3RzR3Jh
cGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24oKTsKICAgICB2b2lkIHJlc2V0
TWFya0ZvckRlc3RydWN0aW9uKCk7CkBAIC0xMTksNyArMTIzLDcgQEAgcHJpdmF0ZToKIAogICAg
IC8vIEhvbGRzIHRoZSBzb3J0ZWQgY2hpbGRyZW4gb2YgYSBuYW1lZCBmbG93LiBUaGlzIGlzIHRo
ZSBvbmx5IHdheSB3ZSBjYW4gZ2V0IHRoZSBvcmRlcmluZyByaWdodC4KICAgICB0eXBlZGVmIExp
c3RIYXNoU2V0PFJlbmRlck9iamVjdCo+IEZsb3dUaHJlYWRDaGlsZExpc3Q7Ci0gICAgRmxvd1Ro
cmVhZENoaWxkTGlzdCBtX2Zsb3dUaHJlYWRDaGlsZExpc3Q7CisgICAgT3duUHRyPEZsb3dUaHJl
YWRDaGlsZExpc3Q+IG1fZmxvd1RocmVhZENoaWxkTGlzdDsKIAogICAgIE5hbWVkRmxvd0NvbnRl
bnRFbGVtZW50cyBtX2NvbnRlbnRFbGVtZW50czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcAppbmRleCBlZDlkMjQyLi5hMzFlNTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAtNzMwLDYgKzczMCwxNiBAQCB2b2lkIFJl
bmRlclJlZ2lvbjo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiAgICAgfQogfQogCit2b2lkIFJlbmRl
clJlZ2lvbjo6YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25z
dCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykKK3sKKyAgICBM
YXlvdXRSZWN0IGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QgPSBmbG93VGhyZWFkUG9ydGlv
blJlY3QoKTsKKyAgICBmbG93VGhyZWFkKCktPmZsaXBGb3JXcml0aW5nTW9kZShmbGlwcGVkRmxv
d1RocmVhZFBvcnRpb25SZWN0KTsKKyAgICByZWdpb25Cb3VuZHMubW92ZUJ5KHJvdW5kZWRJbnRQ
b2ludChmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0LmxvY2F0aW9uKCkpKTsKKworICAgIFVO
VVNFRF9QQVJBTShsYXllck9mZnNldCk7Cit9CisKKwogUmVuZGVyT3ZlcmZsb3cqIFJlbmRlclJl
Z2lvbjo6ZW5zdXJlT3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiBib3gpCiB7CiAgICAg
UmVuZGVyQm94UmVnaW9uSW5mbyogYm94SW5mbyA9IHJlbmRlckJveFJlZ2lvbkluZm8oYm94KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA3N2JjZmUwLi41Y2Q5
NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xMzcsNiAr
MTM3LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RMYXllckZyYWdtZW50
cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRSZWN0Jikg
eyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQ
b3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJv
dW5kcyk7IC8vIGxheWVyT2Zmc2V0IGlzIG5lZWRlZCBmb3IgbXVsdGktY29sdW1uLgorCiAgICAg
dm9pZCBhZGRMYXlvdXRPdmVyZmxvd0ZvckJveChjb25zdCBSZW5kZXJCb3gqLCBjb25zdCBMYXlv
dXRSZWN0Jik7CiAgICAgdm9pZCBhZGRWaXN1YWxPdmVyZmxvd0ZvckJveChjb25zdCBSZW5kZXJC
b3gqLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgTGF5b3V0UmVjdCBsYXlvdXRPdmVyZmxvd1Jl
Y3RGb3JCb3goY29uc3QgUmVuZGVyQm94Kik7CkBAIC0yNDUsOCArMjQ3LDIxIEBAIGlubGluZSBj
b25zdCBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSZWdpb24qPihvYmplY3Qp
OwogfQogCitpbmxpbmUgUmVuZGVyUmVnaW9uJiB0b1JlbmRlclJlZ2lvbihSZW5kZXJPYmplY3Qm
IG9iamVjdCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3Qu
aXNSZW5kZXJSZWdpb24oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlZ2lvbiY+
KG9iamVjdCk7Cit9CisKK2lubGluZSBjb25zdCBSZW5kZXJSZWdpb24mIHRvUmVuZGVyUmVnaW9u
KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlclJlZ2lvbigpKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyUmVnaW9uJj4ob2JqZWN0KTsKK30KKwogLy8gVGhpcyB3aWxsIGNh
dGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgogdm9pZCB0b1JlbmRlclJlZ2lv
bihjb25zdCBSZW5kZXJSZWdpb24qKTsKK3ZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVy
UmVnaW9uJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDJiNmYwOTMuLmFjMzQxOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTc3
NywxOCArNzc3LDIyIEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXJzKFRleHRTdHJlYW0mIHRzLCBj
b25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJMYXllCiAgICAgaWYgKFZlY3RvcjxS
ZW5kZXJMYXllcio+KiBwb3NMaXN0ID0gbC0+cG9zWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgIHNp
emVfdCBsYXllckNvdW50ID0gMDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBw
b3NMaXN0LT5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGlmICghcG9zTGlzdC0+YXQoaSktPmlz
T3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICAgICAgaWYgKCFwb3NMaXN0LT5h
dChpKS0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkp
CiAgICAgICAgICAgICAgICAgKytsYXllckNvdW50OwogICAgICAgICBpZiAobGF5ZXJDb3VudCkg
ewogICAgICAgICAgICAgaW50IGN1cnJJbmRlbnQgPSBpbmRlbnQ7Ci0gICAgICAgICAgICBpZiAo
YmVoYXZpb3IgJiBSZW5kZXJBc1RleHRTaG93TGF5ZXJOZXN0aW5nKSB7Ci0gICAgICAgICAgICAg
ICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7Ci0gICAgICAgICAgICAgICAgdHMgPDwgIiBwb3Np
dGl2ZSB6LW9yZGVyIGxpc3QoIiA8PCBsYXllckNvdW50IDw8ICIpXG4iOwotICAgICAgICAgICAg
ICAgICsrY3VyckluZGVudDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgIT0gcG9zTGlzdC0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoIXBvc0xpc3QtPmF0KGkpLT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgd3JpdGVMYXllcnModHMsIHJvb3RMYXllciwgcG9zTGlzdC0+YXQoaSks
IHBhaW50RGlydHlSZWN0LCBjdXJySW5kZW50LCBiZWhhdmlvcik7CisgICAgICAgICAgICAvLyBX
ZSBvbmx5IHByaW50IHRoZSBoZWFkZXIgaWYgdGhlcmUncyBhdCBsaXN0IGEgbm9uLVJlbmRlck5h
bWVkRmxvd1RocmVhZCBwYXJ0IG9mIHRoZSBsaXN0LgorICAgICAgICAgICAgaWYgKCFwb3NMaXN0
LT5zaXplKCkgfHwgIXBvc0xpc3QtPmF0KDApLT5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMoKSkgeworICAgICAgICAgICAgICAgIGlmIChiZWhhdmlvciAm
IFJlbmRlckFzVGV4dFNob3dMYXllck5lc3RpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgd3Jp
dGVJbmRlbnQodHMsIGluZGVudCk7CisgICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgcG9zaXRp
dmUgei1vcmRlciBsaXN0KCIgPDwgcG9zTGlzdC0+c2l6ZSgpIDw8ICIpXG4iOworICAgICAgICAg
ICAgICAgICAgICArK2N1cnJJbmRlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgIT0gcG9zTGlzdC0+c2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHByaW50IG5hbWVkIGZsb3dzIHR3aWNlLgorICAg
ICAgICAgICAgICAgICAgICBpZiAoIXBvc0xpc3QtPmF0KGkpLT5pc0Zsb3dUaHJlYWRDb2xsZWN0
aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIsIHBvc0xpc3QtPmF0KGkpLCBwYWludERpcnR5UmVj
dCwgY3VyckluZGVudCwgYmVoYXZpb3IpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0K
</data>
<flag name="commit-queue"
          id="237146"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214691</attachid>
            <date>2013-10-19 21:54:20 -0700</date>
            <delta_ts>2013-10-19 23:47:04 -0700</delta_ts>
            <desc>patch that fixes the failing test</desc>
            <filename>patch120457CollectLayersAnonymous.diff</filename>
            <type>text/plain</type>
            <size>105190</size>
            <attacher name="Mihai Maerean">mmaerean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOTVlOGEwLi4xODljNDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTMtMTAt
MTggIE1paGFpIE1hZXJlYW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zv
cm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zv
cm1lZC1jaGlsZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lv
bi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGlu
Zy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVh
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Jl
Z2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12
aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5z
aWRlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Ry
YW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29t
cG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVs
dGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0
bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50
aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0xMC0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgd2ViYXVkaW8vIHRlc3RzIG9uIERSVC9NYWMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNm
b3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njk3NzQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRl
LXJlZ2lvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBs
YXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUg
cmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJr
aXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13
ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVkZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJfQorCQkJ
LmNvbnRlbnQgeworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90
YXRlWigwZGVnKTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVn
aW9uKi8KKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdD4KKwkJCXdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCAibG9hZCIsIGZ1bmN0aW9uICgpIHsKKwkJCQl2YXIgZGl2ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3RyYW5zZm9ybWVkIik7CisJCQkJZm9yKHZhciBpID0gMDsgaSA8IDEwOyAr
K2kgKSB7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAidHJhbnNmb3JtZWQgY29udGVudCI7CisJCQkJ
CWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJCQlkaXYuY2xhc3NOYW1lID0gImNvbnRlbnQi
OworCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKwkJCQl9CisJCQl9LCBmYWxzZSk7CisJ
CTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBpZD0idHJhbnNmb3JtZWQiIGNs
YXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxk
aXYgaWQ9InRyYW5zZm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3Jt
ZWQgY29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5ub3QgdHJhbnNmb3JtZWQg
Y29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCQk8ZGl2PlRlc3Qg
UEFTU0VTIGlmIGl0IGRvZXNuJ3QgY3Jhc2ggb3IgYXNzZXJ0PC9kaXY+CisJPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24uaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1y
ZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTFlM2Y1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10
cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNd
IFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRl
ciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJ
CS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisJCQkudHJhbnNmb3JtZWQgewor
CQkJCS13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVkZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJ
fQorCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOnRoZUZsb3c7CisJCQl9CisJ
CQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTp0aGVGbG93OworCQkJfQorCQk8L3N0
eWxlPgorCQk8c2NyaXB0PgorCQkJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgZnVu
Y3Rpb24gKCkgeworCQkJCXZhciBkaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdHJhbnNm
b3JtZWQiKTsKKwkJCQlmb3IodmFyIGkgPSAwOyBpIDwgMTA7ICsraSApIHsKKwkJCQkJZGl2LmNs
YXNzTmFtZSA9ICJ0cmFuc2Zvcm1lZCBjb250ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAiY29udGVudCI7CisJCQkJCWRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOworCQkJCX0KKwkJCX0sIGZhbHNlKTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVkIGNv
bnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBpZD0idHJhbnNmb3JtZWQi
IGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJ
CTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxk
aXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCTxkaXY+VGVzdCBQQVNTRVMgaWYgaXQgZG9lc24n
dCBjcmFzaCBvciBhc3NlcnQ8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9u
cy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNm
b3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZmM5NzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0
bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5v
bmU7CisJCQl9CisKKwkJCS5jb250ZW50IHsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJ
CQkucmVnaW9uIHsKKwkJCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisJCQkJZmxvYXQ6IHJpZ2h0
OworCQkJCXdpZHRoOiAyMTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6ICNlZWU7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwZGVnKTsgLypzbyB0
aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCX0KKwkJCS50
ZXh0IHsKKwkJCQl3aWR0aDogNjAwcHg7CisJCQl9CisJCQkqIHsKKwkJCQlib3JkZXI6c29saWQg
MXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJCW1hcmdpbjogM3B4OworCQkJfQorCQk8
L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwv
c2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3Jp
cHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4K
KwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJ
CQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVu
dC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0idGV4dCI+CisJCQlMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRh
dGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdhIGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVt
cG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMgcXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNw
aWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0gbW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4
aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0IGRpY3RhLiAKKwkJCTxkaXYgY2xhc3M9InJlZ2lv
biI+CisJCQkJPGRpdiBjbGFzcz0iY29udGVudCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9u
PC9kaXY+CisJCQkJPHZpZGVvIGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIiBoZWlnaHQ9IjEw
MCIgd2lkdGg9Ijk2IiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQkJPGRpdiBjbGFz
cz0iY29udGVudCB0cmFuc2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9kaXY+
CisJCQk8L2Rpdj4KKwkJCSBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMg
cmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVu
aW0gbWludXMgcGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBt
aW5pbWEgc3VzY2lwaXQuPC9kaXY+CisJCTxkaXYgY2xhc3M9InRleHQiPkxvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBNb2xsaXRpYSwgY3Vw
aWRpdGF0ZSwgcG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3JydXB0aSBzdXNjaXBp
dCB0ZW1wb3JhIGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1dGEgcmVwZWxsYXQg
cGVyc3BpY2lhdGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFnbmkgYSB2b2x1cHRh
cyBtYXhpbWUgb2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIEV0LCBhZCBzaXQgcHJhZXNl
bnRpdW0gcmVjdXNhbmRhZSBvbW5pcyByZWljaWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1
bSB2ZXJvIHJlcHJlaGVuZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhp
bWUgZnVnaWF0IGl1cmUgc29sdXRhIG1pbmltYSBzdXNjaXBpdC48L2Rpdj4KKwk8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNo
aWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9u
LXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45ODYxZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLmh0bWwKQEAg
LTAsMCArMSw1OCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0bGU+CisJ
CTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJ
CQl9CisKKwkJCS5jb250ZW50IHsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogdGhlRmxvdzsKKwkJ
CX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRl
Zykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ct
ZnJvbTogdGhlRmxvdzsKKwkJCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisJCQkJZmxvYXQ6IHJp
Z2h0OworCQkJCXdpZHRoOiAyMTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91
bmQtY29sb3I6ICNlZWU7CisJCQl9CisJCQkudGV4dCB7CisJCQkJd2lkdGg6IDYwMHB4OworCQkJ
fQorCQkJKiB7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsK
KwkJCQltYXJnaW46IDNweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4u
L21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJ
CQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
CQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRl
byh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7
CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InRl
eHQiPgorCQkJTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2lj
aW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0YXRlLCBwb3JybywgZGlnbmlzc2ltb3MgZnVnYSBp
bXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRlbXBvcmEgZWFydW0gb2RpdCBhc3BlcmlvcmVzIHF1
aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJzcGljaWF0aXMgaXN0ZSBldCB2b2x1cHRhdGVtIG1v
bGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1heGltZSBvZmZpY2lpcyBpdXN0byBkb2xvciB1dCBk
aWN0YS4gCisJCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCQkJRXQsIGFkIHNpdCBwcmFl
c2VudGl1bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNpZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50
aXVtIHZlcm8gcmVwcmVoZW5kZXJpdCBlbmltIG1pbnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1h
eGltZSBmdWdpYXQgaXVyZSBzb2x1dGEgbWluaW1hIHN1c2NpcGl0LgorCQk8L2Rpdj4KKwkJPGRp
diBjbGFzcz0idGV4dCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0YXRlLCBwb3JybywgZGlnbmlzc2ltb3Mg
ZnVnYSBpbXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRlbXBvcmEgZWFydW0gb2RpdCBhc3Blcmlv
cmVzIHF1aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJzcGljaWF0aXMgaXN0ZSBldCB2b2x1cHRh
dGVtIG1vbGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1heGltZSBvZmZpY2lpcyBpdXN0byBkb2xv
ciB1dCBkaWN0YS4gRXQsIGFkIHNpdCBwcmFlc2VudGl1bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNp
ZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50aXVtIHZlcm8gcmVwcmVoZW5kZXJpdCBlbmltIG1p
bnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1heGltZSBmdWdpYXQgaXVyZSBzb2x1dGEgbWluaW1h
IHN1c2NpcGl0LjwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5Mb25nIHRleHQgaW5zaWRl
IHRoZSByZWdpb248L2Rpdj4KKwkJPHZpZGVvIGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIiBo
ZWlnaHQ9IjEwMCIgd2lkdGg9Ijk2IiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCTxk
aXYgY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiPkxvbmcgdGV4dCBpbnNpZGUgdGhlIHJlZ2lv
bjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJv
bS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YWU0MWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5
ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY0
IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10g
VGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVy
IHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJ
LXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJ
CXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6
IFllbGxvdzsKKwkJCX0KKworCQkJYm9keSAucmVnaW9uOm50aC1jaGlsZCgyKSAuY29udGVudCB7
CisJCQkJbWFyZ2luLXRvcDogMHB4OyAvKm1hcmdpbnMgYXJlIGNvbGxhcHNlZCB3aGVuIGZyYWdt
ZW50ZWQqLworCQkJfQorCisJCQkubW92ZXNUaGVMYXllclRvTmV4dFJlZ2lvbiB7CisJCQkJaGVp
Z2h0OiAyMjVweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsK
KwkJCQktd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDFweCk7IC8qc28gdGhlIGRpdiBpcyBj
b21wb3NpdGVkKi8KKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJh
Y2tncm91bmQtY29sb3I6IExpbWU7CisJCQl9CisKKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQt
dHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1
c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQloZWlnaHQ6IDIzMHB4OworCQkJCWJvcmRlcjpzb2xp
ZCAxcHggIzg4ODsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUg
dGV4dCAxLgorCisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJ3aWxsQmVBZGRl
ZFRvVGhlRmxvdyIgY2xhc3M9ImNvbnRlbnQgbW92ZXNUaGVMYXllclRvTmV4dFJlZ2lvbiI+Z29l
cyBpbiB0aGUgMXN0IHJlZ2lvbi48L2Rpdj4KKwkJPC9kaXY+CisKKwkJc29tZSB0ZXh0LgorCisJ
CTxkaXYgY2xhc3M9InJlZ2lvbiI+CisJCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij4KKwkJCQlzb21l
IHRleHQgMi4KKwkJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+CisJ
CQkJCXNvbWUgdGV4dCAzLgorCQkJCTwvZGl2PgorCQkJCXNvbWUgdGV4dCA0LgorCQkJCTxkaXY+
c29tZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29t
ZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJPC9kaXY+CisJCTwv
ZGl2PgorCisJCXNvbWUgdGV4dCA1LgorCisJCTxwPklmIHdlIGhhdmUgbGF5ZXJzIHRoYXQgbW92
ZWQgZnJvbSBvbmUgcmVnaW9uIHRvIGFub3RoZXIsIHdlIHRyaWdnZXIgYSBjb21wb3NpdGVkIGxh
eWVycyByZWJ1aWxkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb25zIHdpbGwgY29sbGVjdCB0
aGUgcmlnaHQgbGF5ZXJzLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9t
b3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDZiNDgwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZy
b20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+CisJ
PGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJv
bSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycg
bGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1z
bW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCS5jb250ZW50IHsKKwkJCQktd2Via2l0LWZsb3ct
aW50bzogZmxvdzsKKwkJCQl3aWR0aDogMTUwcHg7CisJCQkJaGVpZ2h0OiAxMDBweDsKKwkJCQli
YWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQl9CisKKwkJCSNjYXVzZXNUaGVSZWdpb25Ub0Jl
Q29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKKwkJ
CQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6
IExpbWU7CisJCQl9CisKKwkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIHsKKwkJCQloZWln
aHQ6IDIyNXB4OworCQkJfQorCisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTog
ZmxvdzsKKwkJCQloZWlnaHQ6IDIzMHB4OworCQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKKwkJ
CX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCisJCTxk
aXYgY2xhc3M9ImNvbnRlbnQiPmdvZXMgaW4gdGhlIDFzdCByZWdpb24uPC9kaXY+CisKKwkJPGRp
diBjbGFzcz0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgaWQ9ImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQlzb21lIHRleHQgMy4KKwkJCTwvZGl2PgorCQkJ
c29tZSB0ZXh0IDQuCisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KKwkJCTxkaXY+c29tZSB0ZXh0
LjwvZGl2PgorCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rp
dj4KKwkJPC9kaXY+CisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIiBpZD0icjEiPjwvZGl2PgorCisJ
CXNvbWUgdGV4dC4KKworCQk8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMiI+PC9kaXY+CisJCXNv
bWUgdGV4dCA1LgorCisJCTxwPklmIHdlIGhhdmUgbGF5ZXJzIHRoYXQgbW92ZWQgZnJvbSBvbmUg
cmVnaW9uIHRvIGFub3RoZXIsIHdlIHRyaWdnZXIgYSBjb21wb3NpdGVkIGxheWVycyByZWJ1aWxk
IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb25zIHdpbGwgY29sbGVjdCB0aGUgcmlnaHQgbGF5
ZXJzLjwvcD4KKworCQk8c2NyaXB0PgorCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGRv
IHRoZSBsYXlvdXQuCisJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IC5jb250ZW50OmZp
cnN0LWNoaWxkIikuY2xhc3NOYW1lID0gImNvbnRlbnQgbW92ZXNUaGVMYXllclRvTmV4dFJlZ2lv
biI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ct
Ym9yZGVyLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kMzkwZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBz
aG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJ
PHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJ
CX0KKworCQkJI2NvbnRlbnQgeworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4
OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRw
eCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCSNy
ZWdpb24geworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6
IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJ
CQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlw
eDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9o
ZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0icmVnaW9uIj4KKwkJCTxk
aXYgaWQ9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAyLgorCQkJCTxkaXYgaWQ9ImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQkJc29tZSB0ZXh0IDMuCisJCQkJPC9kaXY+CisJ
CQkJc29tZSB0ZXh0IDQuCisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8
cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRp
bmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0byBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFk
b3ctYm9yZGVyLXBhZGRpbmctZm9yLXZpZGVvLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jNzM5OWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9y
LXZpZGVvLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGh0bWw+CisJPGhlYWQ+CisJ
CTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxv
dyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwv
dGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6
IG5vbmU7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKKwkJCX0KKworCQkJI2NvbnRl
bnQgeworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJ
CQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQl3aWR0aDogOTAlOworCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owor
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlw
dCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0
RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJ
dmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJ
CQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxs
LCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNv
bWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJ
CQkJc29tZSB0ZXh0IDIuCisJCQkJPHZpZGVvIGhlaWdodD0iMjcwIiB3aWR0aD0iNDgwIiBpZD0i
dmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQkJc29tZSB0ZXh0IDQuCisJCQk8L2Rpdj4KKwkJ
PC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHBy
b3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0
byB2aWRlbyBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdp
b24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWYxMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9y
ZGVyLXBhZGRpbmctZm9yLXZpZGVvLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+CisJPGhl
YWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0
aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5
ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9v
dGhpbmc6IG5vbmU7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKKwkJCX0KKworCQkJ
I2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdpZHRoOiAxNTBw
eDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0
cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkjcmVnaW9u
IHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJCQl3aWR0aDogOTAlOworCQkJCWJv
cmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZw
eDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4
cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4K
KwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4K
KwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJ
CTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5j
dGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7CisJCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVv
JylbMF07CisJCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRp
bmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJv
ZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAy
LgorCQkJPHZpZGVvIGhlaWdodD0iMjcwIiB3aWR0aD0iNDgwIiBpZD0idmlkZW8iIGNvbnRyb2xz
PjwvdmlkZW8+CisJCQlzb21lIHRleHQgNC4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+
PC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHBy
b3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0
byB2aWRlbyBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hh
ZG93LWJvcmRlci1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDhjMzNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
Z2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWwKQEAg
LTAsMCArMSw1MSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NT
IFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxl
Y3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0
bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250
ZW50IHsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzsKKwkJCQl3aWR0aDogMTUwcHg7CisJ
CQkJaGVpZ2h0OiAxMDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFk
ZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJ
fQorCisJCQkjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQl3aWR0aDog
MTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJ
CQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJ
CQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4
IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6
IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFy
Z2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9k
eT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIu
CisJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+CisJCQkJc29tZSB0
ZXh0IDMuCisJCQk8L2Rpdj4KKwkJCXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0i
cmVnaW9uIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1z
aGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWlu
LWFub3RoZXItZmxvd3RocmVhZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjNkNjUwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBz
aG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJ
PHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJ
CX0KKworCQkJLmNvbnRlbnQgeworCQkJCXdpZHRoOiAyNTBweDsKKwkJCQloZWlnaHQ6IDExMHB4
OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRw
eCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTY1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCSNy
ZWdpb24geworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5lOiBkb3Vi
bGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjog
MjdweCAxOHB4IDI5cHggMjBweDsKKwkJCX0KKworCQkJI291dHRlclJlZ2lvbiB7CisJCQkJYm9y
ZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJ
CQlwYWRkaW5nOiA3cHggOHB4IDlweCAxMHB4OworCQkJCW1hcmdpbjogOHB4IDlweCAxMHB4IDEx
cHg7CisJCQl9CisKKwkJCS5mb3JjZWRTdGFja2luZ0NvbnRleHQgeworCQkJCXBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKwkJCQl6LWluZGV4OiAxOworCQkJfQorCisJCQkuYm94U2hhZG93IHsKKwkJCQli
b3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0ib3V0dGVyUmVnaW9uIiBjbGFz
cz0iZm9yY2VkU3RhY2tpbmdDb250ZXh0IGJveFNoYWRvdyI+CisJCQk8ZGl2IGNsYXNzPSJvdXR0
ZXJGbG93IGNvbnRlbnQgYm94U2hhZG93Ij48L2Rpdj4KKwkJCTxkaXYgaWQ9InJlZ2lvbiIgY2xh
c3M9ImZvcmNlZFN0YWNraW5nQ29udGV4dCBib3hTaGFkb3ciPgorCQkJCTxkaXYgY2xhc3M9ImNv
bnRlbnQiPgorCQkJCQlzb21lIHRleHQgMi4KKwkJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9u
VG9CZUNvbXBvc2l0ZWQiIGNsYXNzPSJib3hTaGFkb3ciPgorCQkJCQkJc29tZSB0ZXh0IDMuCisJ
CQkJCTwvZGl2PgorCQkJCQlzb21lIHRleHQgNC4KKwkJCQk8L2Rpdj4KKwkJCTwvZGl2PgorCQkJ
PGRpdiBjbGFzcz0iY29udGVudCBib3hTaGFkb3ciPjwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0
ZXh0IDUuCisJCTxwPlJlbmRlclJlZ2lvbnMgbWF5IGJlIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJz
IGluc2lkZSBhbm90aGVyIGZsb3cgdGhyZWFkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93dGhyZWFkLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVy
LWZsb3d0aHJlYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzA1
ODUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9y
ZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93dGhyZWFkLmh0bWwKQEAgLTAsMCArMSw4NiBA
QAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRo
ZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0
aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13
ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCS5vdXR0ZXJGbG93IHsKKwkJ
CQktd2Via2l0LWZsb3ctaW50bzogb3V0dGVyRmxvdzsKKwkJCX0KKworCQkJLmlubmVyRmxvdyB7
CisJCQkJLXdlYmtpdC1mbG93LWludG86IGlubmVyRmxvdzsKKwkJCX0KKworCQkJLmNvbnRlbnQg
eworCQkJCXdpZHRoOiAyNTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2lu
OiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9z
aXRlZCB7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDogNDBweDsKKwkJCQliYWNrZ3Jv
dW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJn
aW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtNjVweCk7CisJCQl9
CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBpbm5lckZsb3c7CisJCQkJ
Ym9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsK
KwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiAyN3B4IDE4cHggMjlw
eCAyMHB4OworCQkJfQorCisJCQkjb3V0dGVyUmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJv
bTogb3V0dGVyRmxvdzsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGlu
ZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDdweCA4cHggOXB4IDEwcHg7CisJCQkJ
bWFyZ2luOiA4cHggOXB4IDEwcHggMTFweDsKKwkJCX0KKworCQkJLmJveFNoYWRvdyB7CisJCQkJ
Ym94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBpZD0ib3V0dGVyUmVnaW9uIiBj
bGFzcz0iYm94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJvdXR0ZXJGbG93IGNvbnRl
bnQgYm94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJvdXR0ZXJG
bG93IGJveFNoYWRvdyI+PC9kaXY+CisKKwkJPGRpdiBjbGFzcz0iaW5uZXJGbG93IGNvbnRlbnQi
PgorCQkJc29tZSB0ZXh0IDIuCisJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9z
aXRlZCIgY2xhc3M9ImJveFNoYWRvdyI+CisJCQkJc29tZSB0ZXh0IDMuCisJCQk8L2Rpdj4KKwkJ
CXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJvdXR0ZXJGbG93IGNvbnRl
bnQgYm94U2hhZG93Ij48L2Rpdj4KKworCQlzb21lIHRleHQgNS4KKworCQk8cD5SZW5kZXJSZWdp
b25zIG1heSBiZSBjb21wb3NpdGVkIFJlbmRlckxheWVycyBpbnNpZGUgYW5vdGhlciBmbG93IHRo
cmVhZC48L3A+CisKKwkJPHNjcmlwdD4KKwkJCWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJ
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIiku
Y2xhc3NOYW1lICs9ICIgdHJhbnNmb3JtZWQiOworCQk8L3NjcmlwdD4KKwk8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRl
by1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdp
b24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVl
YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90
cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcg
IzwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkudHJhbnNwYXJl
bnQgeworCQkJCW9wYWNpdHk6IDAuNTsKKwkJCX0KKwkJCS5wb3NpdGlvbmVkIHsKKwkJCQlwb3Np
dGlvbjogcmVsYXRpdmU7CisJCQl9CisJCQkuY29udGVudCB7CisJCQkJd2hpdGUtc3BhY2U6IG5v
d3JhcDsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCXdpZHRoOjIwMHB4OworCQkJCWJvcmRlci1s
ZWZ0LXdpZHRoOiA1cHg7CisJCQkJYm9yZGVyLXRvcC13aWR0aDogMWVtOworCQkJCXBhZGRpbmct
bGVmdDogNCU7CisJCQkJcGFkZGluZy10b3A6IDNwdDsKKwkJCQltYXJnaW46IDIwcHg7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwZGVnKTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0
ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5k
ZXg6IDE7IC8qU3RhY2tpbmcgQ29udGV4dCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJfQor
CQkJKiB7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsKKwkJ
CQltYXJnaW46IDNweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21l
ZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworCQkJ
fQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRlbyh2
aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJ
CQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InJlZ2lv
biI+CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250
ZW50PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc3BhcmVudCBjb250ZW50Ij50cmFuc3BhcmVu
dCBjb250ZW50PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIGNvbnRlbnQiPnBvc2l0
aW9uZWQgY29udGVudDwvZGl2PgorCQkJPHZpZGVvIGNsYXNzPSJjb250ZW50IiBoZWlnaHQ9IjE1
MCIgd2lkdGg9IjIxMCIgaWQ9InZpZGVvIiBjb250cm9scz48L3ZpZGVvPgorCQkJPGRpdiBjbGFz
cz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPC9kaXY+CisJPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0
aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVn
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRhOTg3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3Jt
LXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sCkBAIC0wLDAg
KzEsNTYgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnICM8L3RpdGxlPgorCQk8c3R5
bGU+CisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVk
ZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJfQorCQkJLnRyYW5zcGFyZW50IHsKKwkJCQlvcGFjaXR5
OiAwLjU7CisJCQl9CisJCQkucG9zaXRpb25lZCB7CisJCQkJcG9zaXRpb246IHJlbGF0aXZlOwor
CQkJfQorCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOnRoZUZsb3c7CisJCQkJ
d2hpdGUtc3BhY2U6IG5vd3JhcDsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxv
dy1mcm9tOnRoZUZsb3c7CisJCQkJd2lkdGg6MjAwcHg7CisJCQkJYm9yZGVyLWxlZnQtd2lkdGg6
IDVweDsKKwkJCQlib3JkZXItdG9wLXdpZHRoOiAxZW07CisJCQkJcGFkZGluZy1sZWZ0OiA0JTsK
KwkJCQlwYWRkaW5nLXRvcDogM3B0OworCQkJCW1hcmdpbjogMjBweDsKKwkJCX0KKwkJCSogewor
CQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKKwkJCQlwYWRkaW5nOiAycHg7CisJCQkJbWFyZ2lu
OiAzcHg7CisJCQl9CisJCTwvc3R5bGU+CisJCTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVk
aWEtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS9tZWRp
YS1maWxlLmpzIj48L3NjcmlwdD4KKworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPgorCQkJZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0KKworCQkJ
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlkZW8sICcu
Li8uLi9tZWRpYS9jb250ZW50L2NvdW50aW5nJywgbnVsbCwgdGVzdERvbmUpOworCQkJfTsKKwkJ
PC9zY3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBj
b250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InRyYW5zcGFy
ZW50IGNvbnRlbnQiPnRyYW5zcGFyZW50IGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0icG9z
aXRpb25lZCBjb250ZW50Ij5wb3NpdGlvbmVkIGNvbnRlbnQ8L2Rpdj4KKwkJPHZpZGVvIGNsYXNz
PSJjb250ZW50IiBoZWlnaHQ9IjE1MCIgd2lkdGg9IjIxMCIgaWQ9InZpZGVvIiBjb250cm9scz48
L3ZpZGVvPgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5ub3QgdHJhbnNmb3JtZWQgY29udGVudDwv
ZGl2PgorCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1l
ZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTJlYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJh
bnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9t
IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBs
YXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNt
b290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCXdpZHRoOiAxNTBweDsK
KwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlw
YWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJ
CQl9CisKKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCS5p
bm5lciB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogQ3lhbjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7
CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlz
IGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQlib3gtc2hhZG93OiAycHgg
MnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRl
ci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsK
KwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAx
MHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEu
CisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRl
eHQgMi4KKwkJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCI+CisJCQkJCXNvbWUgdGV4dCAzLgor
CQkJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBpbm5lciI+CisJCQkJCQlzb21lIHRleHQgNC4K
KwkJCQkJPC9kaXY+CisJCQkJCXNvbWUgdGV4dCA1LgorCQkJCTwvZGl2PgorCQkJCXNvbWUgdGV4
dCA2LgorCQkJPC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQgNy4KKwkJPHA+UmVuZGVyaW5n
IGEgdHJhbnNmb3JtZWQgbGF5ZXIgaW5zaWRlIGFub3RoZXIgdHJhbnNmb3JtZWQgbGF5ZXIuPC9w
PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVn
aW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTU4NzcyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNp
ZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRv
OiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tn
cm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJ
bWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwor
CQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHgg
NnB4IDdweCA4cHg7CisJCQl9CisKKwkJCS5pbm5lciB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjog
Q3lhbjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7
CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91Ymxl
IDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlvdXRs
aW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJ
CW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4
dCAyLgorCQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQiPgorCQkJCXNvbWUgdGV4dCAzLgorCQkJ
CTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGlubmVyIj4KKwkJCQkJc29tZSB0ZXh0IDQuCisJCQkJ
PC9kaXY+CisJCQkJc29tZSB0ZXh0IDUuCisJCQk8L2Rpdj4KKwkJCXNvbWUgdGV4dCA2LgorCQk8
L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDcuCisJCTxwPlJl
bmRlcmluZyBhIHRyYW5zZm9ybWVkIGxheWVyIGluc2lkZSBhbm90aGVyIHRyYW5zZm9ybWVkIGxh
eWVyLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1y
ZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1l
eHBlY3RlZC5odG1sCmluZGV4IDk0NDg3MWYuLmQ5OTQyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9z
aXRpbmctZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVkLmh0bWwKQEAg
LTUsNyArNSw4IEBACiAgICAgLnJlZ2lvbnsKICAgICAgICAgaGVpZ2h0OjUwcHg7CiAgICAgICAg
IHdpZHRoOjUwcHg7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuCisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUz
ZCgxLCAxLCAxKTsvKiBGb3JjZSBhIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXIuICovCiAgICAgfQog
PC9zdHlsZT4KIDwvaGVhZD4KQEAgLTEzLDggKzE0LDcgQEAKIDxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDkwMCI+IFtDU1MgUmVn
aW9uc10gRW5hYmxlIGFjY2VsZXJhdGVkIGxheWVycyBvbiBlbGVtZW50cyBpbnNpZGUgYSBSZW5k
ZXJGbG93VGhyZWFkPC9hPi48L3A+CiA8cD5UZXN0IHRoYXQgYW4gZWxlbWVudCByZXF1aXJpbmcg
YSBjb21wb3NpdGVkIGxheWVyLCBjb2xsZWN0ZWQgaW4gYSBmbG93IHRocmVhZCwgaXMgZGlzcGxh
eWVkIGNvcnJlY3RseSBpbnNpZGUgYSByZWdpb24uPC9wPgogPHA+T24gc3VjY2VzcywgeW91IHNo
b3VsZCBub3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48L3A+Ci08ZGl2IGNsYXNzPSJyZWdp
b24iPgotPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWdpb24iPnJlZ2lvbjwvZGl2PgogPC9ib2R5Pgog
PC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3dl
YmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5n
Lmh0bWwKaW5kZXggNDU2ZTk5Mi4uNjNhZDM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVu
ZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0OTAw
Ij4gW0NTUyBSZWdpb25zXSBFbmFibGUgYWNjZWxlcmF0ZWQgbGF5ZXJzIG9uIGVsZW1lbnRzIGlu
c2lkZSBhIFJlbmRlckZsb3dUaHJlYWQ8L2E+LjwvcD4KIDxwPlRlc3QgdGhhdCBhbiBlbGVtZW50
IHJlcXVpcmluZyBhIGNvbXBvc2l0ZWQgbGF5ZXIsIGNvbGxlY3RlZCBpbiBhIGZsb3cgdGhyZWFk
LCBpcyBkaXNwbGF5ZWQgY29ycmVjdGx5IGluc2lkZSBhIHJlZ2lvbi48L3A+CiA8cD5PbiBzdWNj
ZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KLTxkaXYg
aWQ9ImRpdjEiIGNsYXNzPSJlbGVtZW50U2l6ZSI+PC9kaXY+Cis8ZGl2IGlkPSJkaXYxIiBjbGFz
cz0iZWxlbWVudFNpemUiPnJlZ2lvbjwvZGl2PgogPGRpdiBpZD0icmVnaW9uMSIgY2xhc3M9ImVs
ZW1lbnRTaXplIj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVjZjc2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNjQgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdp
b25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
dW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsK
KwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7
CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4
IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJLmNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
WigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsK
KwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4
cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7CisJCQl9CisKKwkJCS5zZWNvbmQgewor
CQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4
KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47CisJCQkJbWFyZ2luLXRvcDotMWVtOworCQkJ
fQorCisJCQkuejEsIC56MiB7CisJCQkJcG9zaXRpb246IHJlbGF0aXZlOworCQkJfQorCisJCQku
ejEgeworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJCS56MiB7CisJCQkJei1pbmRleDogMjsK
KwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNr
OworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0
cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzog
NnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJ
PC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJy
ZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJPGRp
diBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwv
ZGl2PgorCQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29u
ZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+CisJCQkJc29tZSB0ZXh0IDUuCisJCQk8L2Rpdj4KKwkJ
PC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVj
dGVkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LXVwZGF0
ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4
LXVwZGF0ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhmZjkxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+
CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMg
ZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9u
cycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9u
dC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50IHsKKwkJCQliYWNrZ3JvdW5k
LWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdp
bjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkuY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBv
c2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xh
dGVYKC0zNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRw
eCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCQlib3JkZXI6
IHNvbGlkIDFweCBCbGFjazsKKwkJCX0KKworCQkJLnNlY29uZCB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTI1cHgpOworCQkJCWJhY2tncm91
bmQtY29sb3I6Q3lhbjsKKwkJCQltYXJnaW4tdG9wOi0xZW07CisJCQl9CisKKwkJCS56MSwgLnoy
IHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9CisKKwkJCS56MSB7CisJCQkJei1pbmRl
eDogMTsKKwkJCX0KKworCQkJLnoyIHsKKwkJCQl6LWluZGV4OiAyOworCQkJfQorCisJCQkjcmVn
aW9uIHsKKwkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBk
b3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJ
CW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7
CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2
IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQgMi4KKwkJCQk8ZGl2IGNsYXNzPSJjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MiI+c29tZSB0ZXh0IDMuPC9kaXY+CisJCQkJPGRpdiBj
bGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoxIj5zb21lIHRleHQg
NC48L2Rpdj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0
ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuPC9wPgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM4MzVlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbApAQCAtMCwwICsx
LDcwIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9u
c10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVu
ZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJ
CQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgewor
CQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxv
dzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVw
eCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwor
CQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4
OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29saWQgMXB4IEJs
YWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpDeWFu
OworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgeworCQkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAxOworCQkJfQor
CisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJCS13
ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFj
azsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHgg
NHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6
IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJ
CTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0i
Y29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lv
blRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImNh
dXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+
CisJCQlzb21lIHRleHQgNS4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CisJ
CXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwvcD4K
KwkJPHNjcmlwdD4KKwkJCWRvY3VtZW50Lm9mZnNldFRvcDsKKwkJCWRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoIi5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCIpLmNsYXNzTmFtZSA9ICJjYXVz
ZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MiI7CisJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCIuc2Vjb25kIikuY2xhc3NOYW1lID0gImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNl
Y29uZCB6MSI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3otaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYzhiNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXguaHRtbApA
QCAtMCwwICsxLDY1IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtD
U1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29s
bGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJ
aHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2Nv
bnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCWJhY2tncm91bmQtY29s
b3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAz
cHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRl
ZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgo
LTM1cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVw
eCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29s
aWQgMXB4IEJsYWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjpDeWFuOworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgewor
CQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAx
OworCQkJfQorCisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24g
eworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHgg
MTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdp
ZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7
CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJ
PGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNl
c1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0
IDQuPC9kaXY+CisJCQlzb21lIHRleHQgNS4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+
PC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVj
dGVkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1z
dGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9t
aXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sCmluZGV4IDBjMTA3
OWIuLmIwMmU2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQt
cG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLWV4cGVjdGVk
Lmh0bWwKQEAgLTEsOCArMSw4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxodG1sPgotPGRpdiBzdHls
ZT0iaGVpZ2h0OjIwMHB4O2JvcmRlcjo1cHggc29saWQgYmxhY2s7cG9zaXRpb246cmVsYXRpdmU7
d2lkdGg6MjEwcHgiPgotPGRpdiBzdHlsZT0id2lkdGg6MjEwcHg7aGVpZ2h0OjIwMHB4O2JhY2tn
cm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1
dGU7YmFja2dyb3VuZC1jb2xvcjpnb2xkO2xlZnQ6NTVweDt0b3A6MHB4O2hlaWdodDoyMDBweDt3
aWR0aDoxMDBweCI+MjwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7YmFja2dy
b3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O2xlZnQ6MDtib3R0
b206MCI+MTwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1j
b2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7bGVmdDoxMTBweDt0b3A6MDtoZWlnaHQ6MTAwcHgi
PjwvZGl2PgorPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4O3dpZHRoOjIxMHB4O3Bvc2l0aW9uOnJl
bGF0aXZlO2JvcmRlcjo1cHggc29saWQgYmxhY2siPgorCTxkaXYgc3R5bGU9IndpZHRoOjIxMHB4
O2hlaWdodDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KKwk8ZGl2IHN0
eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo1NXB4O3Rv
cDowcHg7aGVpZ2h0OjIwMHB4O3dpZHRoOjEwMHB4Ij4yPC9kaXY+CisJPGRpdiBzdHlsZT0icG9z
aXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7aGVp
Z2h0OjEwMHB4O2xlZnQ6MDtib3R0b206MCI+MTwvZGl2PgorCTxkaXYgc3R5bGU9InBvc2l0aW9u
OmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6bGlnaHRibHVlO3dpZHRoOjEwMHB4O2xlZnQ6MTEw
cHg7dG9wOjA7aGVpZ2h0OjEwMHB4Ij48L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1v
cmRlci5odG1sCmluZGV4IGY3NmU0OTAuLmRkN2NiNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9y
ZGVyLmh0bWwKQEAgLTYsMTYgKzYsMTQgQEAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJh
c2VkQ29sdW1uc0VuYWJsZWQodHJ1ZSkKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2
IHN0eWxlPSJ3aWR0aDoyMTBweDsgaGVpZ2h0OjIwMHB4OyBib3JkZXI6NXB4IHNvbGlkIGJsYWNr
OyAtbW96LWNvbHVtbi13aWR0aDoxMDBweDsgLW1vei1jb2x1bW4tZ2FwOjEwcHg7IC13ZWJraXQt
Y29sdW1uLXdpZHRoOjEwMHB4OyAtd2Via2l0LWNvbHVtbi1nYXA6MTBweDsgLXdlYmtpdC1jb2x1
bW4tZmlsbDphdXRvOyBjb2x1bW4td2lkdGg6MTAwcHg7IGNvbHVtbi1nYXA6MTBweDsgY29sdW1u
LWZpbGw6YXV0bzsiPgotCi08ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiPgotPGRpdiBz
dHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowOyBoZWlnaHQ6NDAwcHg7IHdpZHRo
OjEwMHB4Ij4KLTxkaXYgc3R5bGU9IndpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5k
LWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KLTxkaXYgc3R5bGU9ImhlaWdodDoyMDBweCI+PC9kaXY+
Ci08ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpw
dXJwbGU7Ij4zPC9kaXY+Ci08L2Rpdj4KLTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB6
LWluZGV4OjE7IGJhY2tncm91bmQtY29sb3I6bGlnaHRibHVlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6
MjAwcHg7IHRvcDoxMDBweCI+MTwvZGl2PgotCi08ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDti
YWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo2OHB4O3RvcDoxM3B4O2hlaWdodDoyMDBweDt3aWR0
aDoxMDBweCI+MjwvZGl2PgotPC9kaXY+Cis8ZGl2IHN0eWxlPSItbW96LWNvbHVtbi13aWR0aDox
MDBweDsgLW1vei1jb2x1bW4tZ2FwOjEwcHg7IHdpZHRoOjIxMHB4OyBoZWlnaHQ6MjAwcHg7Ym9y
ZGVyOjVweCBzb2xpZCBibGFjazsgLXdlYmtpdC1jb2x1bW4td2lkdGg6MTAwcHg7IC13ZWJraXQt
Y29sdW1uLWdhcDoxMHB4OyAtd2Via2l0LWNvbHVtbi1maWxsOmF1dG87IGNvbHVtbi13aWR0aDox
MDBweDsgY29sdW1uLWdhcDoxMHB4OyBjb2x1bW4tZmlsbDphdXRvOyI+CisJPGRpdiBzdHlsZT0i
cG9zaXRpb246cmVsYXRpdmU7Ij4KKwkJPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9w
OjA7bGVmdDowOyBoZWlnaHQ6NDAwcHg7IHdpZHRoOjEwMHB4Ij4KKwkJCTxkaXYgc3R5bGU9Indp
ZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4K
KwkJCTxkaXYgc3R5bGU9ImhlaWdodDoyMDBweCI+PC9kaXY+CisJCQk8ZGl2IHN0eWxlPSJ3aWR0
aDoxMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpwdXJwbGU7Ij4zPC9kaXY+CisJ
CTwvZGl2PgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBiYWNr
Z3JvdW5kLWNvbG9yOmxpZ2h0Ymx1ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjIwMHB4OyB0b3A6MTAw
cHgiPjE8L2Rpdj4KKwkJPGRpdiBzdHlsZT0icG9zaXRpb246Zml4ZWQ7YmFja2dyb3VuZC1jb2xv
cjpnb2xkO2xlZnQ6NjhweDt0b3A6MTNweDtoZWlnaHQ6MjAwcHg7d2lkdGg6MTAwcHgiPjI8L2Rp
dj4KKwk8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRpbmctY29tcG9zaXRlZC1lbGVtZW50LWV4
cGVjdGVkLmh0bWwKaW5kZXggZTM5ZmU2Yy4uNDFkNTU1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNv
bXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5odG1sCkBAIC0xMiwxMCArMTIsMTMgQEAKICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6
IDE7IC8qY3JlYXRlIFN0YWNraW5nIENvbnRleHQqLwogfQorI3JlZ2lvbjEgeworICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7IC8qYWN0aXZhdGUgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmcqLworfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgotICAgIDxkaXYgaWQ9
InJlZ2lvbjEiPjwvZGl2PjxiciAvPgorICAgIDxkaXYgaWQ9InJlZ2lvbjEiPnJlZ2lvbjwvZGl2
PjxiciAvPgogICAgIDxkaXYgaWQ9InJlZ2lvbjIiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21w
b3NpdGVkLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFp
bnRpbmctY29tcG9zaXRlZC1lbGVtZW50Lmh0bWwKaW5kZXggMWRhMWUyYy4uMzg1ODQ0YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3Np
dGVkLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBh
aW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sCkBAIC00MCw3ICs0MCw3IEBACiAgICAgPCEt
LSBUZXN0aW5nIHRoYXQgdGhlIFJlbmRlck9iamVjdCBpcyBtYXJrZWQgYXMgcGFydCBvZiB0aGUg
UmVuZGVyRmxvd1RocmVhZCBiZWZvcmUgaXQgYXBwbGllcyB0aGUgZmlyc3Qgc3R5bGUuCiAgICAg
ICAgIFRoZSB0ZXN0IHNob3VsZCBwYWludCB0d28gZ3JlZW4gcmVjdGFuZ2xlcy4gVGhlcmUgc2hv
dWxkIGJlIG5vIHJlZC4gLS0+CiAgICAgPGRpdiBpZD0iY29udGVudCI+Ci0gICAgICAgIDxkaXYg
aWQ9InRhcmdldCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCI+cmVnaW9uPC9kaXY+
CiAgICAgPC9kaXY+CiAgICAgPGRpdiBpZD0icmVnaW9uMSI+PC9kaXY+PGJyIC8+CiAgICAgPGRp
diBpZD0icmVnaW9uMiI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjY0ZGJjOS4uNzE5Yzg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIzLDcgKzMyMyw3IEBAIHdl
YmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGNvbXBvc2l0aW5nL292ZXJsYXAtYmxlbmRpbmcv
Y2hpbGRyZW4tb3BhY2l0eS1odWdlCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBjb21w
b3NpdGluZy9vdmVybGFwLWJsZW5kaW5nL2NoaWxkcmVuLW9wYWNpdHktbm8tb3ZlcmxhcC5odG1s
ICBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gY3Nz
My9maWx0ZXJzL2N1c3RvbS9lZmZlY3QtY3VzdG9tLXRyYW5zZm9ybS1wYXJhbWV0ZXJzLmh0bWwg
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBmYXN0
L2xheWVycy9uby1jbGlwcGluZy1vdmVyZmxvdy1oaWRkZW4tYWRkZWQtYWZ0ZXItdHJhbnNpdGlv
bi5odG1sICBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVn
IF0gZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvbXVsdGljb2wv
bWl4ZWQtb3BhY2l0eS1maXhlZC10ZXN0Lmh0bWwgIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0K
IHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvcmVnaW9ucy9maXhlZC1wb3MtZWxl
bS1pbi1yZWdpb24uaHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTg5
MjUgWyBEZWJ1ZyBdIHN2Zy9yZXBhaW50L2J1ZmZlcmVkLXJlbmRlcmluZy1zdGF0aWMtaW1hZ2Uu
aHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQxZmRmNGYuLjVjNTBm
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMTMtMTAtMTggIE1paGFpIE1hZXJl
YW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBUaGUgbGF5
ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJl
Z2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgQWxleGFuZHJ1IENoaWN1
bGl0YSBhdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0yMDM4NzIm
YWN0aW9uPXJldmlldworCisgICAgICAgIFRoZSBjb21wb3NpdGVkIGxheWVycyBpbnNpZGUgdGhl
IG5hbWVkIGZsb3cgdGhyZWFkcyBhcmUgY29sbGVjdGVkIGFzIHBhcnQgb2YgdGhlIHJlZ2lvbnMg
KGFzIGNoaWxkcmVuIG9mIHRoZQorICAgICAgICBHcmFwaGljc0xheWVyIG9mIHRoZSBsYXllciB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSByZWdpb24gKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBw
YXJlbnQgcmVuZGVyZXIgb2YKKyAgICAgICAgUmVuZGVyTmFtZUZsb3dGcmFnbWVudCkpLgorICAg
ICAgICBXaGVuIGEgcmVnaW9uIGRpc3BsYXlzIGEgbGF5ZXIgdGhhdCBuZWVkcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyB3ZSBhY3RpdmF0ZSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZm9y
CisgICAgICAgIHRoYXQgcmVnaW9uIHRvbyAoaW5zaWRlIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Y29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGhhcyBsYW5kZWQgYmVmb3JlIChhcyBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xNTY0NTEpLCBidXQgd2FzIHJldmVydGVkIGJlY2F1c2UKKyAgICAgICAgZmFzdC9tdWx0aWNv
bC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1sIGZhaWxlZC4gVGhlIGZpeCBp
cyBpbnNpZGUgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5CZUNvbXBvc2l0ZWQKKyAgICAgICAg
dGhhdCBvbmx5IGVuYWJsZXMgY29tcG9zaXRpbmcgZm9yIGxheWVycyBpbnNpZGUgZmxvdyB0aHJl
YWRzIHRoYXQgY29sbGVjdCB0aGUgZ3JhcGhpY3MgbGF5ZXJzIHVuZGVyIHRoZSByZWdpb25zLgor
CisgICAgICAgIEFub3RoZXIgY2hhbmdlIGZyb20gY2hhbmdlc2V0ICMxNTY0NTEgaXMgdGhhdCBu
b3cgdGhlIHJlZ2lvbiByZW5kZXJlcnMgYXJlIGNyZWF0ZWQgYXMgYW5vbnltb3VzIHJlbmRlcmVy
cyB1bmRlcgorICAgICAgICB0aGUgZWxlbWVudCB0aGF0IGhhcyB0aGUgZmxvdy1mcm9tIHByb3Bl
cnR5LiBXaGVuIGEgY29tcG9zaXRlZCBsYXllciBpcyBuZWVkZWQgZm9yIHRoZSByZWdpb24sIGl0
IHNpdHMgaW4gaXQncworICAgICAgICBwYXJlbnQgcmVuZGVyZXIsIG5vdCBpbiB0aGUgcmVnaW9u
IHJlbmRlcmVyIChSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCkuCisKKyAgICAgICAgVGVzdHM6IGNv
bXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24uaHRtbAorICAg
ICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5z
Zm9ybWVkLWNoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvbW92
ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sCisgICAgICAgICAgICAgICBj
b21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9w
cm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbAorICAgICAgICAg
ICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93
dGhyZWFkLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3Jt
LXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFu
c2Zvcm1lZC1sYXllci5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3ot
aW5kZXgtdXBkYXRlLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvei1p
bmRleC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZVJlbmRlckZs
b3dUaHJlYWRMYXllcnNJZk5lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6cHJvcGFnYXRlU3R5bGVU
b0Fub255bW91c0NoaWxkcmVuKTogTm90IGZvciBSZW5kZXJGbG93VGhyZWFkcywgYXMgdGhleSBh
cmUgdXBkYXRlZAorICAgICAgICB0aHJvdWdoIHRoZSBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5n
ZSBmdW5jdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOiBXaGVuIHRoZSBsYXlv
dXQgb2YgdGhlIGZsb3cgdGhyZWFkIGlzIG92ZXIgKGluY2x1ZGluZyB0aGUgMiBwaGFzZSBsYXlv
dXQpLAorICAgICAgICB3ZSB1cGRhdGUgYWxsIHRoZSBtYXBwaW5ncyBiZXR3ZWVuIHRoZSBsYXll
cnMgaW5zaWRlIHRoZSBmbG93IHRocmVhZCBhbmQgdGhlIHJlZ2lvbnMgd2hlcmUgdGhvc2UgbGF5
ZXJzIHdpbGwgYmUKKyAgICAgICAgcGFpbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCk6IFdoZXRoZXIgYW55IG9m
IHRoZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpnZXRMYXllckxpc3RGb3JSZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0
ZWRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjb2xsZWN0c0dy
YXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncyk6IFRyaWdnZXJzIGFuIHVwZGF0ZSBv
ZiB0aGUgbGF5ZXJzIGlmIGEgbGF5ZXIgaGFzIG1vdmVkCisgICAgICAgIGZyb20gYSByZWdpb24g
dG8gYW5vdGhlciBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjp1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjpw
dXNoUmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5
TWFwLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpwYWludExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OmVuY2xvc2luZ0Zsb3dUaHJlYWRBbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0TGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMpOiBXaGVuIHdl
IGNhbGN1bGF0ZSB0aGUgYm91bmRzIG9mIHRoZSBSZW5kZXJWaWV3LCB3ZSBpZ25vcmUgdGhvc2UK
KyAgICAgICAgZmxvdyB0aHJlYWRzIHRoYXQgY29sbGVjdCB0aGUgZ3JhcGhpY3MgbGF5ZXJzIHVu
ZGVyIHRoZSByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Wk9y
ZGVyTGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxv
d0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9zaXRlZEJvdW5kcyk6IE5vdCBpZiBpdCdzIGEg
ZmxvdyB0aHJlYWQgdGhhdCBjb2xsZWN0cyB0aGUgZ3JhcGhpY3MKKyAgICAgICAgbGF5ZXJzIHVu
ZGVyIHRoZSByZWdpb25zCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6IE5vdyBhZGp1c3RzIHRoZSBhbmNlc3RvckNvbXBv
c2l0aW5nQm91bmRzIGZvciB0aGUgRmxvd1RocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6YWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJl
YWQpOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMKKyAgICAgICAgaXRzIGJv
cmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0byBsYXllcnMgaW5zaWRl
IGl0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjppc1NpbXBsZUNvbnRh
aW5lckNvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKTogTm93IGNhbGxzIGNvbXB1dGVSZWdpb25Db21wb3NpdGluZ1JlcXVp
cmVtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKTogRG8gbm90IGl0
ZXJhdGUgdGhlIFJlbmRlckZsb3dUaHJlYWQgZGlyZWN0bHkgaWYKKyAgICAgICAgd2UgYXJlIGdv
aW5nIHRvIGNvbGxlY3QgdGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIGFzIHBhcnQgb2YgcmVnaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZFJlZ2lvbkNv
bXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y2FuQmVDb21wb3NpdGVkKTogQ1NTIFJlZ2lvbnMgZmxvdyB0aHJlYWRzIGRvIG5vdCBu
ZWVkIHRvIGJlIGNvbXBvc2l0ZWQgYXMgd2UKKyAgICAgICAgdXNlIGNvbXBvc2l0ZWQgUmVuZGVy
UmVnaW9ucyB0byByZW5kZXIgdGhlIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlckZsb3dUaHJlYWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JJbmRpcmVjdFJlYXNvbik6IElmIGl0J3MgYSBjb250YWluZXIgb2YgYSBjc3MgcmVn
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFk
UG9ydGlvblJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OmxheWVyT3duZXIpOiBXaGVuIHRo
ZSBjb250ZW50IGluc2lkZSB0aGUgcmVnaW9uIHJlcXVpcmVzIHRoZSByZWdpb24gdG8gaGF2ZSBh
CisgICAgICAgIGxheWVyLCB0aGUgbGF5ZXIgd2lsbCBiZSBjcmVhdGVkIG9uIHRoZSByZWdpb24n
cyBwYXJlbnQgcmVuZGVyZXIgaW5zdGVhZC4gVGhpcyBtZXRob2QgcmV0dXJucyB0aGF0IHJlbmRl
cmVyCisgICAgICAgIGhvbGRpbmcgdGhlIGxheWVyLiBUaGUgcmV0dXJuIHZhbHVlIG1heSBiZSBu
dWxsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVy
ZXJGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cHJl
dmlvdXNSZW5kZXJlckZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
VGhyZWFkOjphZGRGbG93Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRG
bG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6IG1fZmxvd1RocmVhZENoaWxkTGlz
dCBpcyBub3cgYWxsb2NhdGVkIHRocm91Z2ggYW4gT3duUHRyIHRvIGtlZXAgdGhlIHJlbmRlcgor
ICAgICAgICBhcmVuYSB1bmRlciB0aGUgc2l6ZSBsaW1pdC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6YWRqdXN0
UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJSZWdpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OndyaXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9u
cworCiAyMDEzLTEwLTE5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
TW92ZSBtX2xpbmVCb3hlcyBmcm9tIFJlbmRlckJsb2NrIHRvIFJlbmRlckJsb2NrRmxvdyAoUGFy
dCA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxM2I4NmVmLi4zODk2NDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtMTQyMCw2ICsxNDIwLDcgQEAgX19aTks3V2ViQ29yZTExSGlzdG9yeUl0
ZW05dXJsU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtOXZpZXdTdGF0ZUV2CiBf
X1pOSzdXZWJDb3JlMTFSZW5kZXJMYXllcjE5YWJzb2x1dGVCb3VuZGluZ0JveEV2CiBfX1pOSzdX
ZWJDb3JlMTFSZW5kZXJMYXllcjI0bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nRXYKK19fWk5LN1dl
YkNvcmUxMVJlbmRlckxheWVyNDhpc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNV
bmRlclJlZ2lvbnNFdgogX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUxMWZvbnRNZXRyaWNzRXYK
IF9fWk5LN1dlYkNvcmUxMVJlbmRlclN0eWxlMjF2aXNpdGVkRGVwZW5kZW50Q29sb3JFaQogX19a
Tks3V2ViQ29yZTExUmVuZGVyU3R5bGU0Zm9udEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCAxYTNmN2JhLi41YjJiMjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVS
ZW5kZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQoKQogICAgIC8vIFdhbGsgdGhlIGZsb3cgY2hh
aW4gaW4gcmV2ZXJzZSBvcmRlciBiZWNhdXNlIFJlbmRlclJlZ2lvbnMgbWlnaHQgYmVjb21lIFJl
bmRlckxheWVycyBmb3IgdGhlIGZvbGxvd2luZyBmbG93IHRocmVhZHMuCiAgICAgZm9yIChSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjpyZXZlcnNlX2l0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5h
bWVkRmxvd1RocmVhZExpc3QtPnJiZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhy
ZWFkTGlzdC0+cmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFk
KiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKLSAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVMYXll
clRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpOworICAgICAgICBmbG93UmVuZGVyZXItPnVwZGF0
ZUFsbExheWVyVG9SZWdpb25NYXBwaW5nc0lmTmVlZGVkKCk7CiAgICAgfQogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMTE4OWFiZC4u
NDZlN2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApA
QCAtNzU1LDYgKzc1NSwxMCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnByb3BhZ2F0ZVN0eWxlVG9B
bm9ueW1vdXNDaGlsZHJlbihTdHlsZVByb3BhZ2F0aW9uVHlwZSBwcm9wYQogICAgICAgICAgICAg
Y29udGludWU7CiAjZW5kaWYKIAorICAgICAgICAvLyBSZW5kZXJGbG93VGhyZWFkcyBhcmUgdXBk
YXRlZCB0aHJvdWdoIHRoZSBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZSBmdW5jdGlvbi4KKyAg
ICAgICAgaWYgKGNoaWxkLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCiAgICAgICAgIGF1dG8gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnlt
b3VzU3R5bGVXaXRoRGlzcGxheShzdHlsZSgpLCBjaGlsZC0+c3R5bGUoKS0+ZGlzcGxheSgpKTsK
ICAgICAgICAgaWYgKHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKSkgewogICAgICAgICAgICAg
aWYgKGNoaWxkLT5zdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggZGI1MzllOS4uMTVhNGQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSAi
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTIzNSw5
ICsyMzYsMTAgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAgIC8vIE5vdGUg
dGhhdCB0aGVyZSdzIG5vIG5lZWQgdG8gZG8gc28gZm9yIHRoZSBpbmxpbmUgbXVsdGktY29sdW1u
IGFzIHdlIGFyZSBub3QgbW92aW5nIGxheWVycyBpbnRvIGRpZmZlcmVudAogICAgIC8vIGNvbnRh
aW5lcnMsIGJ1dCBqdXN0IGFkanVzdGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIFJlbmRlckxheWVy
QmFja2luZy4KICAgICBpZiAoIW1fbmVlZHNUd29QaGFzZXNMYXlvdXQpIHsKLSAgICAgICAgdXBk
YXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBoYXZl
IGxheWVycyB0aGF0IG1vdmVkIGZyb20gb25lIHJlZ2lvbiB0byBhbm90aGVyLCB3ZSBzaG91bGQg
dHJpZ2dlcgorICAgICAgICAvLyBJZiB3ZSBoYXZlIGxheWVycyB0aGF0IG1vdmVkIGZyb20gb25l
IHJlZ2lvbiB0byBhbm90aGVyLCB3ZSB0cmlnZ2VyCiAgICAgICAgIC8vIGEgY29tcG9zaXRlZCBs
YXllcnMgcmVidWlsZCBpbiBoZXJlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb25zIHdpbGwg
Y29sbGVjdCB0aGUgcmlnaHQgbGF5ZXJzLgorICAgICAgICBpZiAodXBkYXRlQWxsTGF5ZXJUb1Jl
Z2lvbk1hcHBpbmdzKCkpCisgICAgICAgICAgICBsYXllcigpLT5jb21wb3NpdG9yKCkuc2V0Q29t
cG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0yNDksMzcg
KzI1MSw3MyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiB9CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1SZW5kZXJSZWdpb24qIFJlbmRlckZsb3dUaHJlYWQ6
OnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciogY2hpbGRMYXllcikKK2Jvb2wg
UmVuZGVyRmxvd1RocmVhZDo6aGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkgY29uc3QK
IHsKLSAgICBMYXlvdXRQb2ludCBsZWZ0VG9wTG9jYXRpb24gPSBjaGlsZExheWVyLT5yZW5kZXJC
b3goKSA/IGNoaWxkTGF5ZXItPnJlbmRlckJveCgpLT5mbGlwRm9yV3JpdGluZ01vZGUoTGF5b3V0
UG9pbnQoKSkgOiBMYXlvdXRQb2ludCgpOwotICAgIExheW91dFBvaW50IGZsb3dUaHJlYWRPZmZz
ZXQgPSBmbG9vcmVkTGF5b3V0UG9pbnQoY2hpbGRMYXllci0+cmVuZGVyZXIoKS5sb2NhbFRvQ29u
dGFpbmVyUG9pbnQobGVmdFRvcExvY2F0aW9uLCB0aGlzLCBBcHBseUNvbnRhaW5lckZsaXApKTsK
LSAgICByZXR1cm4gcmVnaW9uQXRCbG9ja09mZnNldCgwLCBmbGlwRm9yV3JpdGluZ01vZGUoaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZsb3dUaHJlYWRPZmZzZXQueSgpIDogZmxvd1RocmVh
ZE9mZnNldC54KCkpLCB0cnVlLCBEaXNhbGxvd1JlZ2lvbkF1dG9HZW5lcmF0aW9uKTsKKyAgICBm
b3IgKFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3Qu
YmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikKKyAgICAgICAgaWYg
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGxheWVyT3duZXIgPSB0b1JlbmRlck5hbWVkRmxvd0Zy
YWdtZW50KCppdGVyKS0+bGF5ZXJPd25lcigpKQorICAgICAgICAgICAgaWYgKGxheWVyT3duZXIt
Pmhhc0xheWVyKCkgJiYgbGF5ZXJPd25lci0+bGF5ZXIoKS0+aGFzQ29tcG9zaXRpbmdEZXNjZW5k
YW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2NvbnN0IFJlbmRlckxheWVyTGlzdCogUmVuZGVyRmxvd1RocmVhZDo6Z2V0TGF5ZXJM
aXN0Rm9yUmVnaW9uKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24pCit7CisgICAgaWYg
KCFtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwKQorICAgICAgICByZXR1cm4gMDsKKyAgICB1cGRhdGVB
bGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpOworICAgIFJlZ2lvblRvTGF5ZXJMaXN0
TWFwOjpjb25zdF9pdGVyYXRvciBpdGVyYXRvciA9IG1fcmVnaW9uVG9MYXllckxpc3RNYXAtPmZp
bmQocmVnaW9uKTsKKyAgICByZXR1cm4gaXRlcmF0b3IgPT0gbV9yZWdpb25Ub0xheWVyTGlzdE1h
cC0+ZW5kKCkgPyAwIDogJml0ZXJhdG9yLT52YWx1ZTsKK30KKworUmVuZGVyTmFtZWRGbG93RnJh
Z21lbnQqIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJM
YXllciYgY2hpbGRMYXllcikKK3sKKyAgICBpZiAoY2hpbGRMYXllci5yZW5kZXJCb3goKSkgewor
ICAgICAgICBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uID0gMDsKKyAgICAgICAgUmVuZGVyUmVn
aW9uKiBlbmRSZWdpb24gPSAwOworICAgICAgICBnZXRSZWdpb25SYW5nZUZvckJveChjaGlsZExh
eWVyLnJlbmRlckJveCgpLCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKTsKKyAgICAgICAgLy8gVGhl
IHZpZGVvIHRhZyBpcyBzdWNoIGEgYm94IHRoYXQgZG9lc24ndCBoYXZlIGEgcmVnaW9uIHJhbmdl
IGJlY2F1c2UgaXQncyBpbmxpbmUgKGJ5IGRlZmF1bHQpLgorICAgICAgICBpZiAoc3RhcnRSZWdp
b24pCisgICAgICAgICAgICByZXR1cm4gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudChzdGFydFJl
Z2lvbik7CisgICAgfQorCisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UnbGwgaGF2
ZSByZWdpb24gcmFuZ2VzIGZvciBpbmxpbmVzIGFzIHdlbGwuCisgICAgTGF5b3V0UG9pbnQgZmxv
d1RocmVhZE9mZnNldCA9IGZsb29yZWRMYXlvdXRQb2ludChjaGlsZExheWVyLnJlbmRlcmVyKCku
bG9jYWxUb0NvbnRhaW5lclBvaW50KExheW91dFBvaW50KCksIHRoaXMsIEFwcGx5Q29udGFpbmVy
RmxpcCkpOworICAgIHJldHVybiB0b1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KHJlZ2lvbkF0Qmxv
Y2tPZmZzZXQoMCwgZmxpcEZvcldyaXRpbmdNb2RlKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBmbG93VGhyZWFkT2Zmc2V0LnkoKSA6IGZsb3dUaHJlYWRPZmZzZXQueCgpKSwgdHJ1ZSwgRGlz
YWxsb3dSZWdpb25BdXRvR2VuZXJhdGlvbikpOwogfQogCi12b2lkIFJlbmRlckZsb3dUaHJlYWQ6
OnVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKFJlbmRlckxheWVyKiBsYXllciwgTGF5ZXJUb1Jl
Z2lvbk1hcCYgbGF5ZXJUb1JlZ2lvbk1hcCwgUmVnaW9uVG9MYXllckxpc3RNYXAmIHJlZ2lvblRv
TGF5ZXJMaXN0TWFwLCBib29sJiBuZWVkc0xheWVyVXBkYXRlKQorUmVuZGVyTmFtZWRGbG93RnJh
Z21lbnQqIFJlbmRlckZsb3dUaHJlYWQ6OmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihS
ZW5kZXJMYXllciYgY2hpbGRMYXllcikKIHsKLSAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJl
Z2lvbkZvckNvbXBvc2l0ZWRMYXllcihsYXllcik7CisgICAgaWYgKCFtX2xheWVyVG9SZWdpb25N
YXApCisgICAgICAgIHJldHVybiAwOworICAgIHVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5n
c0lmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1fbGF5ZXJUb1JlZ2lvbk1hcC0+Z2V0KCZjaGlsZExh
eWVyKTsKK30KKwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9uTWFw
cGluZ3MoUmVuZGVyTGF5ZXImIGxheWVyLCBMYXllclRvUmVnaW9uTWFwJiBsYXllclRvUmVnaW9u
TWFwLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYgcmVnaW9uVG9MYXllckxpc3RNYXAsIGJvb2wmIG5l
ZWRzTGF5ZXJVcGRhdGUpCit7CisgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHJlZ2lvbiA9
IHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihsYXllcik7CiAgICAgaWYgKCFuZWVkc0xheWVyVXBk
YXRlKSB7Ci0gICAgICAgIEFTU0VSVChtX2xheWVyVG9SZWdpb25NYXApOwogICAgICAgICAvLyBG
aWd1cmUgb3V0IGlmIHdlIG1vdmVkIHRoaXMgbGF5ZXIgZnJvbSBhIHJlZ2lvbiB0byB0aGUgb3Ro
ZXIuCi0gICAgICAgIFJlbmRlclJlZ2lvbiogcHJldmlvdXNSZWdpb24gPSBtX2xheWVyVG9SZWdp
b25NYXAtPmdldChsYXllcik7CisgICAgICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBwcmV2
aW91c1JlZ2lvbiA9IGNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihsYXllcik7CiAgICAg
ICAgIGlmIChwcmV2aW91c1JlZ2lvbiAhPSByZWdpb24pCiAgICAgICAgICAgICBuZWVkc0xheWVy
VXBkYXRlID0gdHJ1ZTsKICAgICB9CisKICAgICBpZiAoIXJlZ2lvbikKICAgICAgICAgcmV0dXJu
OwotICAgIGxheWVyVG9SZWdpb25NYXAuc2V0KGxheWVyLCByZWdpb24pOworCisgICAgbGF5ZXJU
b1JlZ2lvbk1hcC5zZXQoJmxheWVyLCByZWdpb24pOworCiAgICAgUmVnaW9uVG9MYXllckxpc3RN
YXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0gcmVnaW9uVG9MYXllckxpc3RNYXAuZmluZChyZWdpb24p
OwogICAgIFJlbmRlckxheWVyTGlzdCYgbGlzdCA9IGl0ZXJhdG9yID09IHJlZ2lvblRvTGF5ZXJM
aXN0TWFwLmVuZCgpID8gcmVnaW9uVG9MYXllckxpc3RNYXAuc2V0KHJlZ2lvbiwgUmVuZGVyTGF5
ZXJMaXN0KCkpLml0ZXJhdG9yLT52YWx1ZSA6IGl0ZXJhdG9yLT52YWx1ZTsKLSAgICBsaXN0LmFw
cGVuZChsYXllcik7CisgICAgQVNTRVJUKCFsaXN0LmNvbnRhaW5zKCZsYXllcikpOworICAgIGxp
c3QuYXBwZW5kKCZsYXllcik7CiB9CiAKLWJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzKCkKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlQWxsTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzKCkKIHsKLSAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbWFwIGxheWVy
cyB0byByZWdpb25zIGZvciBuYW1lZCBmbG93IHRocmVhZHMuCi0gICAgLy8gTXVsdGktY29sdW1u
IHRocmVhZHMgYXJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIHJlZ2lvbnMgYW5kIGRvIG5vdCBy
ZXF1aXJlCi0gICAgLy8gZGlzdHJpYnV0aW5nIHRoZSBsYXllcnMuCi0gICAgaWYgKCFpc091dE9m
Rmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICBpZiAoIWNvbGxlY3RzR3JhcGhpY3NMYXllcnNV
bmRlclJlZ2lvbnMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV2UgY2FuJ3Qg
dXNlIGN1cnJlbnRGbG93VGhyZWFkIGFzIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgaW50ZXJsZWF2
ZWQgZmxvdyB0aHJlYWRzIGFuZCB0aGUgd3Jvbmcgb25lIGNvdWxkIGJlIHVzZWQuCkBAIC0yODcs
MzQgKzMyNSwyNiBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25N
YXBwaW5ncygpCiAgICAgQ3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNhYmxlciBkaXNhYmxlcigm
dmlldygpKTsKIAogICAgIC8vIElmIHRoZSBSZW5kZXJGbG93VGhyZWFkIGhhZCBhIHotaW5kZXgg
bGF5ZXIgdXBkYXRlLCB0aGVuIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBjb21wb3NpdGVkIGxheWVy
cyB0b28uCi0gICAgYm9vbCBuZWVkc0xheWVyVXBkYXRlID0gbV9sYXllcnNUb1JlZ2lvbk1hcHBp
bmdzRGlydHkgfHwgIW1fbGF5ZXJUb1JlZ2lvbk1hcC5nZXQoKTsKKyAgICBib29sIG5lZWRzTGF5
ZXJVcGRhdGUgPSBsYXllcigpLT5pc0RpcnR5UmVuZGVyRmxvd1RocmVhZCgpIHx8IG1fbGF5ZXJz
VG9SZWdpb25NYXBwaW5nc0RpcnR5IHx8ICFtX2xheWVyVG9SZWdpb25NYXAuZ2V0KCk7CiAgICAg
bGF5ZXIoKS0+dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKICAgICBMYXllclRvUmVnaW9u
TWFwIGxheWVyVG9SZWdpb25NYXA7CiAgICAgUmVnaW9uVG9MYXllckxpc3RNYXAgcmVnaW9uVG9M
YXllckxpc3RNYXA7CiAKLSAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxp
c3QgPSBsYXllcigpLT5uZWdaT3JkZXJMaXN0KCkpIHsKLSAgICAgICAgc2l6ZV90IGxpc3RTaXpl
ID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxpc3RTaXplOyArK2kpCi0gICAgICAgICAgICB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihu
ZWdaT3JkZXJMaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RN
YXAsIG5lZWRzTGF5ZXJVcGRhdGUpOwotICAgIH0KLQotICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5
ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBsYXllcigpLT5ub3JtYWxGbG93TGlzdCgpKSB7Ci0gICAg
ICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7Ci0gICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKLSAgICAgICAgICAgIHVwZGF0ZVJl
Z2lvbkZvclJlbmRlckxheWVyKG5vcm1hbEZsb3dMaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1h
cCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJVcGRhdGUpOwotICAgIH0KLSAgICAK
LSAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllcigpLT5w
b3NaT3JkZXJMaXN0KCkpIHsKLSAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlz
dC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
Ci0gICAgICAgICAgICB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihwb3NaT3JkZXJMaXN0LT5h
dChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJV
cGRhdGUpOwotICAgIH0KKyAgICBSZW5kZXJMYXllckxpc3QqIGxpc3RzW10gPSB7IGxheWVyKCkt
Pm5lZ1pPcmRlckxpc3QoKSwgbGF5ZXIoKS0+bm9ybWFsRmxvd0xpc3QoKSwgbGF5ZXIoKS0+cG9z
Wk9yZGVyTGlzdCgpfTsKKyAgICBmb3IgKHNpemVfdCBsaXN0SW5kZXggPSAwOyBsaXN0SW5kZXgg
PCBzaXplb2YobGlzdHMpIC8gc2l6ZW9mKGxpc3RzWzBdKTsgKytsaXN0SW5kZXgpCisgICAgICAg
IGlmIChSZW5kZXJMYXllckxpc3QqIGxpc3QgPSBsaXN0c1tsaXN0SW5kZXhdKQorICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGlzdC0+c2l6ZSgpOyBpIDwgbGlzdFNp
emU7ICsraSkKKyAgICAgICAgICAgICAgICB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKmxp
c3QtPmF0KGkpLCBsYXllclRvUmVnaW9uTWFwLCByZWdpb25Ub0xheWVyTGlzdE1hcCwgbmVlZHNM
YXllclVwZGF0ZSk7CiAKICAgICBpZiAobmVlZHNMYXllclVwZGF0ZSkgewogICAgICAgICBpZiAo
IW1fbGF5ZXJUb1JlZ2lvbk1hcCkKICAgICAgICAgICAgIG1fbGF5ZXJUb1JlZ2lvbk1hcCA9IGFk
b3B0UHRyKG5ldyBMYXllclRvUmVnaW9uTWFwKCkpOwogICAgICAgICBtX2xheWVyVG9SZWdpb25N
YXAtPnN3YXAobGF5ZXJUb1JlZ2lvbk1hcCk7CisKKyAgICAgICAgaWYgKCFtX3JlZ2lvblRvTGF5
ZXJMaXN0TWFwKQorICAgICAgICAgICAgbV9yZWdpb25Ub0xheWVyTGlzdE1hcCA9IGFkb3B0UHRy
KG5ldyBSZWdpb25Ub0xheWVyTGlzdE1hcCgpKTsKKyAgICAgICAgbV9yZWdpb25Ub0xheWVyTGlz
dE1hcC0+c3dhcChyZWdpb25Ub0xheWVyTGlzdE1hcCk7CiAgICAgfQogCiAgICAgbV9sYXllcnNU
b1JlZ2lvbk1hcHBpbmdzRGlydHkgPSBmYWxzZTsKQEAgLTMyMyw2ICszNTMsMTUgQEAgYm9vbCBS
ZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKQogfQogI2VuZGlm
CiAKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6Y29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVn
aW9ucygpIGNvbnN0Cit7CisgICAgLy8gV2Ugb25seSBuZWVkIHRvIG1hcCBsYXllcnMgdG8gcmVn
aW9ucyBmb3IgbmFtZWQgZmxvdyB0aHJlYWRzLgorICAgIC8vIE11bHRpLWNvbHVtbiB0aHJlYWRz
IGFyZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSByZWdpb25zIGFuZCBkbyBub3QgcmVxdWlyZQor
ICAgIC8vIGRpc3RyaWJ1dGluZyB0aGUgbGF5ZXJzLgorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCiB7CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGggPSBpbml0aWFsTG9naWNhbFdpZHRoKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCA3YmVjNGE2Li44NWIwZDll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTQx
LDEzICs0MSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgTGF5ZXJGcmFnbWVudDsK
IHR5cGVkZWYgVmVjdG9yPExheWVyRnJhZ21lbnQsIDE+IExheWVyRnJhZ21lbnRzOwogY2xhc3Mg
UmVuZGVyRmxvd1RocmVhZDsKK2NsYXNzIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OwogY2xhc3Mg
UmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJSZWdpb247CiAKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiB0eXBlZGVmIExpc3RIYXNoU2V0PFJlbmRlclJlZ2lvbio+IFJlbmRlclJl
Z2lvbkxpc3Q7CiB0eXBlZGVmIFZlY3RvcjxSZW5kZXJMYXllcio+IFJlbmRlckxheWVyTGlzdDsK
LXR5cGVkZWYgSGFzaE1hcDxSZW5kZXJSZWdpb24qLCBSZW5kZXJMYXllckxpc3Q+IFJlZ2lvblRv
TGF5ZXJMaXN0TWFwOwotdHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVuZGVyUmVnaW9u
Kj4gTGF5ZXJUb1JlZ2lvbk1hcDsKK3R5cGVkZWYgSGFzaE1hcDxSZW5kZXJOYW1lZEZsb3dGcmFn
bWVudCosIFJlbmRlckxheWVyTGlzdD4gUmVnaW9uVG9MYXllckxpc3RNYXA7Cit0eXBlZGVmIEhh
c2hNYXA8UmVuZGVyTGF5ZXIqLCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCo+IExheWVyVG9SZWdp
b25NYXA7CisjZW5kaWYKIAogLy8gUmVuZGVyRmxvd1RocmVhZCBpcyB1c2VkIHRvIGNvbGxlY3Qg
YWxsIHRoZSByZW5kZXIgb2JqZWN0cyB0aGF0IHBhcnRpY2lwYXRlIGluIGEKIC8vIGZsb3cgdGhy
ZWFkLiBJdCB3aWxsIGFsc28gaGVscCBpbiBkb2luZyB0aGUgbGF5b3V0LiBIb3dldmVyLCBpdCB3
aWxsIG5vdCByZW5kZXIKQEAgLTExNyw4ICsxMjAsNiBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJS
ZWdpb24qIHJlZ2lvbkF0QmxvY2tPZmZzZXQoY29uc3QgUmVuZGVyQm94KiwgTGF5b3V0VW5pdCwg
Ym9vbCBleHRlbmRMYXN0UmVnaW9uID0gZmFsc2UsIFJlZ2lvbkF1dG9HZW5lcmF0aW9uUG9saWN5
ID0gQWxsb3dSZWdpb25BdXRvR2VuZXJhdGlvbik7CiAKLSAgICBjb25zdCBSZW5kZXJMYXllckxp
c3QqIGdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJSZWdpb24qKSBjb25zdDsKLQogICAgIGJv
b2wgcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWdp
b25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lkdGg7IH0KICAgICBib29sIHJlZ2lvbnNIYXZlVW5pZm9y
bUxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2lj
YWxIZWlnaHQ7IH0KIApAQCAtMTgxLDEzICsxODIsMjMgQEAgcHVibGljOgogICAgIHZvaWQgY2xl
YXJOZWVkc1R3b1BoYXNlc0xheW91dCgpIHsgbV9uZWVkc1R3b1BoYXNlc0xheW91dCA9IGZhbHNl
OyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gV2hldGhlciBh
bnkgb2YgdGhlIHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRpbmcgZGVzY2VuZGFudC4KKyAgICBib29s
IGhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0OworCiAgICAgdm9pZCBzZXRO
ZWVkc0xheWVyVG9SZWdpb25NYXBwaW5nc1VwZGF0ZSgpIHsgbV9sYXllcnNUb1JlZ2lvbk1hcHBp
bmdzRGlydHkgPSB0cnVlOyB9Ci0gICAgdm9pZCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3NJ
Zk5lZWRlZCgpCisgICAgdm9pZCB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5lZWRl
ZCgpCiAgICAgewogICAgICAgICBpZiAobV9sYXllcnNUb1JlZ2lvbk1hcHBpbmdzRGlydHkpCi0g
ICAgICAgICAgICB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsKKyAgICAgICAgICAgIHVw
ZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpOwogICAgIH0KKworICAgIGNvbnN0IFJlbmRl
ckxheWVyTGlzdCogZ2V0TGF5ZXJMaXN0Rm9yUmVnaW9uKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
Kik7CisKKyAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uRm9yQ29tcG9zaXRlZExh
eWVyKFJlbmRlckxheWVyJik7IC8vIEJ5IG1lYW5zIG9mIGdldFJlZ2lvblJhbmdlRm9yQm94IG9y
IHJlZ2lvbkF0QmxvY2tPZmZzZXQuCisgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIGNhY2hl
ZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciYpOworCiAjZW5kaWYKKyAgICB2
aXJ0dWFsIGJvb2wgY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0Owog
CiAgICAgdm9pZCBwdXNoRmxvd1RocmVhZExheW91dFN0YXRlKGNvbnN0IFJlbmRlck9iamVjdCop
OwogICAgIHZvaWQgcG9wRmxvd1RocmVhZExheW91dFN0YXRlKCk7CkBAIC0yMjIsNyArMjMzLDEx
IEBAIHByb3RlY3RlZDoKICAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWdpb25DbGlwcGluZ1JlY3Qo
Y29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgTGF5b3V0UmVjdCYp
IGNvbnN0OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIFJlbmRlclJl
Z2lvbiogcmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyKik7CisgICAgYm9vbCB1
cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsKKworICAgIC8vIFRyaWdnZXJzIGEgbGF5
ZXJzJyB1cGRhdGUgaWYgYSBsYXllciBoYXMgbW92ZWQgZnJvbSBhIHJlZ2lvbiB0byBhbm90aGVy
IHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS4KKyAgICB2b2lkIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBw
aW5ncyhSZW5kZXJMYXllciYsIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1h
cCYsIGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpOworICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KiByZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIqKTsKICAgICBib29sIHVwZGF0
ZUxheWVyVG9SZWdpb25NYXBwaW5ncygpOwogICAgIHZvaWQgdXBkYXRlUmVnaW9uRm9yUmVuZGVy
TGF5ZXIoUmVuZGVyTGF5ZXIqLCBMYXllclRvUmVnaW9uTWFwJiwgUmVnaW9uVG9MYXllckxpc3RN
YXAmLCBib29sJiBuZWVkc0xheWVyVXBkYXRlKTsKICNlbmRpZgpAQCAtMzA0LDcgKzMxOSwxMSBA
QCBwcm90ZWN0ZWQ6CiAgICAgfTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICAvLyBUbyBlYXNpbHkgZmluZCB0aGUgcmVnaW9uIHdoZXJlIGEgbGF5ZXIgc2hvdWxkIGJl
IHBhaW50ZWQuCiAgICAgT3duUHRyPExheWVyVG9SZWdpb25NYXA+IG1fbGF5ZXJUb1JlZ2lvbk1h
cDsKKworICAgIC8vIFRvIGVhc2lseSBmaW5kIHRoZSBsaXN0IG9mIGxheWVycyB0aGF0IHBhaW50
IGluIGEgcmVnaW9uLgorICAgIE93blB0cjxSZWdpb25Ub0xheWVyTGlzdE1hcD4gbV9yZWdpb25U
b0xheWVyTGlzdE1hcDsKICNlbmRpZgogCiAgICAgLy8gQSBtYXBzIGZyb20gUmVuZGVyQm94CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAppbmRleCAx
ODYyYTk1Li42YmFlNDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR2VvbWV0cnlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
ZW9tZXRyeU1hcC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJSZW5kZXJHZW9tZXRyeU1hcC5oIgogCisjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVh
ZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgog
I2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCkBAIC0yNTEsNiArMjUyLDEyIEBAIHZvaWQgUmVu
ZGVyR2VvbWV0cnlNYXA6OnB1c2hWaWV3KGNvbnN0IFJlbmRlclZpZXcqIHZpZXcsIGNvbnN0IExh
eW91dFNpemUmIHNjcm9sCiAgICAgc3RlcEluc2VydGVkKHN0ZXApOwogfQogCit2b2lkIFJlbmRl
ckdlb21ldHJ5TWFwOjpwdXNoUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkKQoreworICAgIG1fbWFwcGluZy5hcHBlbmQoUmVuZGVyR2VvbWV0cnlNYXBT
dGVwKGZsb3dUaHJlYWQsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKSk7CisgICAgc3RlcElu
c2VydGVkKG1fbWFwcGluZy5sYXN0KCkpOworfQorCiB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpw
b3BNYXBwaW5nc1RvQW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0
b3JSZW5kZXJlcikKIHsKICAgICBBU1NFUlQobV9tYXBwaW5nLnNpemUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oCmluZGV4IDkyZDUyMDkuLjQ0ZmJi
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1h
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oCkBA
IC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVuZGVyRmxv
d1RocmVhZDsKIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDsKIGNsYXNzIFJlbmRlclZpZXc7CkBAIC0xMTAsNiArMTExLDcgQEAgcHVibGljOgogCiAgICAg
Ly8gUmVuZGVyVmlldyBnZXRzIHNwZWNpYWwgdHJlYXRtZW50LCBiZWNhdXNlIGl0IGFwcGxpZXMg
dGhlIHNjcm9sbCBvZmZzZXQgb25seSBmb3IgZWxlbWVudHMgaW5zaWRlIGluIGZpeGVkIHBvc2l0
aW9uLgogICAgIHZvaWQgcHVzaFZpZXcoY29uc3QgUmVuZGVyVmlldyosIGNvbnN0IExheW91dFNp
emUmIHNjcm9sbE9mZnNldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgqID0gMCk7CisgICAg
dm9pZCBwdXNoUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5kZXJGbG93VGhyZWFkKik7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBtYXBUb0NvbnRhaW5lcihUcmFuc2Zvcm1TdGF0ZSYsIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lciA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNjc1MWI1Zi4uYzRiMjE5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC04NCw2ICs4NCw3IEBACiAj
aW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWFycXVlZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgorI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5o
IgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKQEAgLTQwMzEsNyArNDAz
Miw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiog
bGlzdCwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxpc3QtPnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExheWVy
ID0gbGlzdC0+YXQoaSk7Ci0gICAgICAgIGlmIChjaGlsZExheWVyLT5pc091dE9mRmxvd1JlbmRl
ckZsb3dUaHJlYWQoKSkKKyAgICAgICAgaWYgKGNoaWxkTGF5ZXItPmlzRmxvd1RocmVhZENvbGxl
Y3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgaWYgKCFjaGlsZExheWVyLT5pc1BhZ2luYXRlZCgpKQpAQCAtNDQ0NSw2ICs0
NDQ2LDIzIEBAIEVsZW1lbnQqIFJlbmRlckxheWVyOjplbmNsb3NpbmdFbGVtZW50KCkgY29uc3QK
ICAgICByZXR1cm4gMDsKIH0KIAorUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdG
bG93VGhyZWFkQW5jZXN0b3IoKSBjb25zdAoreworICAgIFJlbmRlckxheWVyKiBjdXJyID0gcGFy
ZW50KCk7CisgICAgZm9yICg7IGN1cnIgJiYgIWN1cnItPmlzUmVuZGVyRmxvd1RocmVhZCgpOyBj
dXJyID0gY3Vyci0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGN1cnItPmlzU3RhY2tpbmdDb250
YWluZXIoKSAmJiBjdXJyLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgLy8gV2Ugb25s
eSBhZGp1c3QgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBsZXZlbCBvZiBsYXllcnMuCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY3VycjsKK30K
KworYm9vbCBSZW5kZXJMYXllcjo6aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJz
VW5kZXJSZWdpb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5pc1JlbmRlckZs
b3dUaHJlYWQoKSAmJiB0b1JlbmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuY29sbGVjdHNHcmFw
aGljc0xheWVyc1VuZGVyUmVnaW9ucygpOworfQorCiAvLyBDb21wdXRlIHRoZSB6LW9mZnNldCBv
ZiB0aGUgcG9pbnQgaW4gdGhlIHRyYW5zZm9ybVN0YXRlLgogLy8gVGhpcyBpcyBlZmZlY3RpdmVs
eSBwcm9qZWN0aW5nIGEgcmF5IG5vcm1hbCB0byB0aGUgcGxhbmUgb2YgYW5jZXN0b3IsIGZpbmRp
bmcgd2hlcmUgdGhhdAogLy8gcmF5IGludGVyc2VjdHMgdGFyZ2V0LCBhbmQgY29tcHV0aW5nIHRo
ZSB6IGRlbHRhIGJldHdlZW4gdGhvc2UgdHdvIHBvaW50cy4KQEAgLTQ4OTAsNyArNDkwOCw3IEBA
IFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExpc3QoVmVjdG9yPFJlbmRlckxheWVy
Kj4qIGxpc3QsIFJlbmRlckxheWVyKiByCiAgICAgUmVuZGVyTGF5ZXIqIHJlc3VsdExheWVyID0g
MDsKICAgICBmb3IgKGludCBpID0gbGlzdC0+c2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAg
ICAgICAgUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIgPSBsaXN0LT5hdChpKTsKLSAgICAgICAgaWYg
KGNoaWxkTGF5ZXItPmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICBpZiAo
Y2hpbGRMYXllci0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdp
b25zKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgUmVuZGVyTGF5ZXIqIGhpdExh
eWVyID0gMDsKICAgICAgICAgSGl0VGVzdFJlc3VsdCB0ZW1wUmVzdWx0KHJlc3VsdC5oaXRUZXN0
TG9jYXRpb24oKSk7CkBAIC01NDk3LDcgKzU1MTUsOCBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVy
OjpjYWxjdWxhdGVMYXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwg
YwogICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAg
UmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gcG9zWk9yZGVyTGlzdC0+YXQoaSk7Ci0gICAgICAgICAg
ICBpZiAoZmxhZ3MgJiBJbmNsdWRlQ29tcG9zaXRlZERlc2NlbmRhbnRzIHx8ICFjdXJMYXllci0+
aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBSZW5kZXJOYW1lZEZsb3dUaHJl
YWQgaXMgaWdub3JlZCB3aGVuIHdlIGNhbGN1bGF0ZSB0aGUgYm91bmRzIG9mIHRoZSBSZW5kZXJW
aWV3LgorICAgICAgICAgICAgaWYgKChmbGFncyAmIEluY2x1ZGVDb21wb3NpdGVkRGVzY2VuZGFu
dHMgfHwgIWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgJiYgIWN1ckxheWVyLT5pc0Zsb3dUaHJl
YWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkgewogICAgICAgICAgICAg
ICAgIExheW91dFJlY3QgY2hpbGRVbmlvbkJvdW5kcyA9IGN1ckxheWVyLT5jYWxjdWxhdGVMYXll
ckJvdW5kcyh0aGlzLCAwLCBkZXNjZW5kYW50RmxhZ3MpOwogICAgICAgICAgICAgICAgIHVuaW9u
Qm91bmRzLnVuaXRlKGNoaWxkVW5pb25Cb3VuZHMpOwogICAgICAgICAgICAgfQpAQCAtNTUxMCw3
ICs1NTI5LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIGMKICAgICAgICAgICAgIFJlbmRlckxh
eWVyKiBjdXJMYXllciA9IG5vcm1hbEZsb3dMaXN0LT5hdChpKTsKICAgICAgICAgICAgIC8vIFJl
bmRlclZpZXcgd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBkb2N1bWVudCwgYmVm
b3JlIHJlYWNoaW5nIHRoaXMgcG9pbnQsCiAgICAgICAgICAgICAvLyBzbyB0aGVyZSdzIG5vIHdh
eSB3ZSBjb3VsZCBoaXQgYSBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgaGVyZS4KLSAgICAgICAgICAg
IEFTU0VSVCghY3VyTGF5ZXItPmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICAg
ICAgICAgIEFTU0VSVCghY3VyTGF5ZXItPmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xh
eWVyc1VuZGVyUmVnaW9ucygpKTsKICAgICAgICAgICAgIGlmIChmbGFncyAmIEluY2x1ZGVDb21w
b3NpdGVkRGVzY2VuZGFudHMgfHwgIWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAg
ICAgICAgICAgIExheW91dFJlY3QgY3VyQWJzQm91bmRzID0gY3VyTGF5ZXItPmNhbGN1bGF0ZUxh
eWVyQm91bmRzKHRoaXMsIDAsIGRlc2NlbmRhbnRGbGFncyk7CiAgICAgICAgICAgICAgICAgdW5p
b25Cb3VuZHMudW5pdGUoY3VyQWJzQm91bmRzKTsKQEAgLTU3MzMsNyArNTc1Miw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkp
IHsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkp
CisgICAgICAgIGlmIChpc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJl
Z2lvbnMoKSkKICAgICAgICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZChyZW5kZXJlcigpKS5zZXRO
ZWVkc0xheWVyVG9SZWdpb25NYXBwaW5nc1VwZGF0ZSgpOwogICAgICAgICBjb21wb3NpdG9yKCku
c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgICAgICBpZiAoYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQpAQCAtNTc1OSw3ICs1Nzc4
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFyZW5kZXJlcigpLmRvY3VtZW50QmVp
bmdEZXN0cm95ZWQoKSkgewotICAgICAgICBpZiAocmVuZGVyZXIoKS5pc091dE9mRmxvd1JlbmRl
ckZsb3dUaHJlYWQoKSkKKyAgICAgICAgaWYgKGlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGlj
c0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKHJl
bmRlcmVyKCkpLnNldE5lZWRzTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzVXBkYXRlKCk7CiAgICAgICAg
IGNvbXBvc2l0b3IoKS5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgICAg
IGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDMzMjdhMzEuLjAyNTYyY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC03NTAsNiArNzUwLDcg
QEAgcHVibGljOgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wg
aXNDb21wb3NpdGVkKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nICE9IDA7IH0KKyAgICBib29s
IGhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29tcG9zaXRp
bmdEZXNjZW5kYW50OyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0OwogICAg
IFJlbmRlckxheWVyQmFja2luZyogYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZy5n
ZXQoKTsgfQogICAgIFJlbmRlckxheWVyQmFja2luZyogZW5zdXJlQmFja2luZygpOwpAQCAtODEz
LDcgKzgxNCwxOSBAQCBwdWJsaWM6CiAgICAgVmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0
ZWRSZWFzb24gdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNv
bj4obV92aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbik7IH0KICNlbmRpZgog
ICAgIAorICAgIGJvb2wgaXNSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVy
ZXIoKS5pc1JlbmRlckZsb3dUaHJlYWQoKTsgfQogICAgIGJvb2wgaXNPdXRPZkZsb3dSZW5kZXJG
bG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5pc091dE9mRmxvd1JlbmRlckZs
b3dUaHJlYWQoKTsgfQorICAgIGJvb2wgaXNJbnNpZGVGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gcmVuZGVyZXIoKS5mbG93VGhyZWFkU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6Ok5vdEluc2lk
ZUZsb3dUaHJlYWQ7IH0KKyAgICBib29sIGlzSW5zaWRlT3V0T2ZGbG93VGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gcmVuZGVyZXIoKS5mbG93VGhyZWFkU3RhdGUoKSA9PSBSZW5kZXJPYmplY3Q6Oklu
c2lkZU91dE9mRmxvd1RocmVhZDsgfQorICAgIGJvb2wgaXNEaXJ0eVJlbmRlckZsb3dUaHJlYWQo
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVuZGVyRmxvd1RocmVhZCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSB8fCBtX25vcm1hbEZsb3dMaXN0RGlydHk7
CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNz
TGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Q7CisKKyAgICBSZW5kZXJMYXllciogZW5jbG9zaW5n
Rmxvd1RocmVhZEFuY2VzdG9yKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZW51bSBDb2xsZWN0
TGF5ZXJzQmVoYXZpb3IgeyBTdG9wQXRTdGFja2luZ0NvbnRleHRzLCBTdG9wQXRTdGFja2luZ0Nv
bnRhaW5lcnMgfTsKQEAgLTEwODIsNyArMTA5NSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1c2VS
ZWdpb25CYXNlZENvbHVtbnMoKSBjb25zdDsKICAgICAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICAgIAotICAgIGJvb2wgaGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQ7IH0KICAgICB2b2lkIHNldEhhc0Nv
bXBvc2l0aW5nRGVzY2VuZGFudChib29sIGIpICB7IG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50
ID0gYjsgfQogICAgIAogICAgIGVudW0gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDlh
YWI2NWYuLmFjOWQ3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRlICJNYWluRnJhbWUu
aCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tl
ci5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJJRnJh
bWUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29t
cG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAi
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNp
bmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtNDA4LDYgKzQxMSw5IEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9zaXRlZEJvdW5kcygpIGNvbnN0CiAgICAgaWYg
KGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyht
X293bmluZ0xheWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fb3duaW5n
TGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NDQs
NiArNjUwLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJH
ZW9tZXRyeSgpCiAgICAgSW50UmVjdCByZWxhdGl2ZUNvbXBvc2l0aW5nQm91bmRzKGxvY2FsQ29t
cG9zaXRpbmdCb3VuZHMpOwogICAgIHJlbGF0aXZlQ29tcG9zaXRpbmdCb3VuZHMubW92ZUJ5KGRl
bHRhKTsKIAorICAgIGFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFk
KGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbXBBbmNlc3Rvcik7CisKICAgICBJbnRQb2lu
dCBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb247CiAgICAgaWYgKGNvbXBBbmNlc3RvciAmJiBj
b21wQW5jZXN0b3ItPmJhY2tpbmcoKS0+aGFzQ2xpcHBpbmdMYXllcigpKSB7CiAgICAgICAgIC8v
IElmIHRoZSBjb21wb3NpdGluZyBhbmNlc3RvciBoYXMgYSBsYXllciB0byBjbGlwIGNoaWxkcmVu
LCB3ZSBwYXJlbnQgaW4gdGhhdCwgYW5kIHRoZXJlZm9yZQpAQCAtODQxLDYgKzg0OSw0MiBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkKICAg
ICByZWdpc3RlclNjcm9sbGluZ0xheWVycygpOwogfQogCit2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6YWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYg
YW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5n
QW5jZXN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCFtX293bmluZ0xheWVyLmlzSW5zaWRlRmxvd1Ro
cmVhZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJMYXllciogZmxvd1RocmVhZExh
eWVyID0gbV9vd25pbmdMYXllci5pc0luc2lkZU91dE9mRmxvd1RocmVhZCgpID8gbV9vd25pbmdM
YXllci5zdGFja2luZ0NvbnRhaW5lcigpIDogbV9vd25pbmdMYXllci5lbmNsb3NpbmdGbG93VGhy
ZWFkQW5jZXN0b3IoKTsKKyAgICBpZiAoZmxvd1RocmVhZExheWVyICYmIGZsb3dUaHJlYWRMYXll
ci0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAgICAgUmVuZGVyRmxvd1RocmVhZCYgZmxv
d1RocmVhZCA9IHRvUmVuZGVyRmxvd1RocmVhZChmbG93VGhyZWFkTGF5ZXItPnJlbmRlcmVyKCkp
OworICAgICAgICBpZiAobV9vd25pbmdMYXllci5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMoKSkgeworICAgICAgICAgICAgLy8gVGhlIFJlbmRlck5hbWVk
Rmxvd1RocmVhZCBpcyBub3QgY29tcG9zaXRlZCwgYXMgd2UgbmVlZCBpdCB0byBwYWludCB0aGUg
CisgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kIGxheWVyIG9mIHRoZSByZWdpb25zLiBXZSBuZWVk
IHRvIGNvbXBlbnNhdGUgZm9yIHRoYXQgYnkgbWFudWFsbHkKKyAgICAgICAgICAgIC8vIHN1YnRy
YWN0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvdy10aHJlYWQuCisgICAgICAgICAgICBJbnRQ
b2ludCBmbG93UG9zaXRpb247CisgICAgICAgICAgICBmbG93VGhyZWFkTGF5ZXItPmNvbnZlcnRU
b1BpeGVsU25hcHBlZExheWVyQ29vcmRzKGNvbXBvc2l0aW5nQW5jZXN0b3IsIGZsb3dQb3NpdGlv
bik7CisgICAgICAgICAgICBhbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzLm1vdmVCeShmbG93UG9z
aXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW92ZSB0aGUgYW5jZXN0b3IgcG9zaXRp
b24gYXQgdGhlIHRvcCBvZiB0aGUgcmVnaW9uIHdoZXJlIHRoZSBjb21wb3NpdGVkIGxheWVyIGlz
IGdvaW5nIHRvIGRpc3BsYXkuCisgICAgICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBwYXJl
bnRSZWdpb24gPSBmbG93VGhyZWFkLmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihtX293
bmluZ0xheWVyKTsKKyAgICAgICAgaWYgKHBhcmVudFJlZ2lvbikgeworICAgICAgICAgICAgSW50
UG9pbnQgZmxvd0RlbHRhOworICAgICAgICAgICAgbV9vd25pbmdMYXllci5jb252ZXJ0VG9QaXhl
bFNuYXBwZWRMYXllckNvb3JkcyhmbG93VGhyZWFkTGF5ZXIsIGZsb3dEZWx0YSk7CisgICAgICAg
ICAgICBwYXJlbnRSZWdpb24tPmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlv
blJlY3QoZmxvd0RlbHRhLCBhbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzKTsKKyAgICAgICAgICAg
IFJlbmRlckJveE1vZGVsT2JqZWN0KiBsYXllck93bmVyID0gdG9SZW5kZXJCb3hNb2RlbE9iamVj
dChwYXJlbnRSZWdpb24tPmxheWVyT3duZXIoKSk7CisgICAgICAgICAgICBpZiAobGF5ZXJPd25l
ci0+aGFzTGF5ZXIoKSAmJiBsYXllck93bmVyLT5sYXllcigpLT5iYWNraW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMgaXRzIGJv
cmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0byBsYXllcnMgaW5zaWRl
IGl0LgorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGUgY29tcG9zaXRlZCBib3VuZHMg
b2YgdGhlIFJlbmRlclJlZ2lvbiBhcmUgYWxyZWFkeSBjYWxjdWxhdGVkCisgICAgICAgICAgICAg
ICAgLy8gYmVjYXVzZSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xh
eWVyVHJlZSB3aWxsIG9ubHkKKyAgICAgICAgICAgICAgICAvLyBpdGVyYXRlIG9uIHRoZSBjb250
ZW50IG9mIHRoZSByZWdpb24gYWZ0ZXIgdGhlIHJlZ2lvbiBpdHNlbGYgaXMgY29tcHV0ZWQuCisg
ICAgICAgICAgICAgICAgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcy5tb3ZlQnkocm91bmRlZElu
dFBvaW50KGxheWVyT3duZXItPmxheWVyKCktPmJhY2tpbmcoKS0+Y29tcG9zaXRlZEJvdW5kcygp
LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBhbmNlc3RvckNvbXBvc2l0aW5nQm91bmRz
Lm1vdmUoLWxheWVyT3duZXItPmJvcmRlckFuZFBhZGRpbmdTdGFydCgpLCAtbGF5ZXJPd25lci0+
Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KK30KKwogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRl
ZENvbnRlbnRzKGJvb2wgaXNTaW1wbGVDb250YWluZXIsIGJvb2wmIGRpZFVwZGF0ZUNvbnRlbnRz
UmVjdCkKIHsKICAgICBpZiAoIW1fb3duaW5nTGF5ZXIuaGFzVmlzaWJsZUNvbnRlbnQoKSkKQEAg
LTE1NzAsNyArMTYxNCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjppc1NpbXBsZUNvbnRh
aW5lckNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogICAgIGlmIChwYWludHNCb3hEZWNvcmF0aW9u
cygpIHx8IHBhaW50c0NoaWxkcmVuKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
IChyZW5kZXJlcigpLmlzUmVuZGVyUmVnaW9uKCkpCisgICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAocmVuZGVyZXIoKS5pc1JlbmRlclZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDlmNTNmMzIuLjM2ZDJmOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTI3
OCw2ICsyNzgsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0
eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlKTsKIAorICAg
IC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5LgorICAg
IHZvaWQgYWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVj
dCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0
aW5nQW5jZXN0b3IpIGNvbnN0OworCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NM
YXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0
ZWRQcm9wZXJ0eUlEIGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IGUwMTUzNmQuLmQxYTBkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00NiwxMCArNDYsMTIgQEAKICNp
bmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJF
bWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRl
ICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKICNp
bmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIK
KyNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclJl
cGxpY2EuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKQEAgLTkzMSw4ICs5MzMsMTEgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICBsYXll
ci51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKICAgICBsYXllci51cGRhdGVMYXll
ckxpc3RzSWZOZWVkZWQoKTsKIAotICAgIGlmIChsYXllci5pc091dE9mRmxvd1JlbmRlckZsb3dU
aHJlYWQoKSkKKyAgICBpZiAobGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5
ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAgICAgICAgUmVuZGVyRmxvd1RocmVhZCYgZmxvd1RocmVh
ZCA9IHRvUmVuZGVyRmxvd1RocmVhZChsYXllci5yZW5kZXJlcigpKTsKKyAgICAgICAgbGF5ZXIu
c2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGZsb3dUaHJlYWQuaGFzQ29tcG9zaXRpbmdSZWdp
b25EZXNjZW5kYW50KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKG92ZXJs
YXBNYXApCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucHVzaE1hcHBpbmdzVG9B
bmNlc3RvcigmbGF5ZXIsIGFuY2VzdG9yTGF5ZXIpOwpAQCAtMTAxMyw2ICsxMDE4LDE1IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
UmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisK
KyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29udGFp
bmVyKCkpIHsKKyAgICAgICAgLy8gV2UgYXJlIGdvaW5nIHRvIGNvbGxlY3QgbGF5ZXJzIGZyb20g
dGhlIFJlbmRlckZsb3dUaHJlYWQgaW50byB0aGUgR3JhcGhpY3NMYXllciBvZiB0aGUgcGFyZW50
IG9mIHRoZQorICAgICAgICAvLyBhbm9ueW1vdXMgUmVuZGVyUmVnaW9uLCBidXQgZmlyc3Qgd2Ug
bmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFyZW50IGl0c2VsZiBvZiB0aGUgcmVnaW9uIGlz
IGdvaW5nIHRvCisgICAgICAgIC8vIGhhdmUgYSBjb21wb3NpdGVkIGxheWVyLiBXZSBvbmx5IHdh
bnQgdG8gbWFrZSByZWdpb25zIGNvbXBvc2l0ZWQgd2hlbiB0aGVyZSdzIGFuIGFjdHVhbCBsYXll
ciB0aGF0IHdlCisgICAgICAgIC8vIG5lZWQgdG8gbW92ZSB0byB0aGF0IHJlZ2lvbi4KKyAgICAg
ICAgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKHRvUmVuZGVyQmxvY2tGbG93
KGxheWVyLnJlbmRlcmVyKCkpLnJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCksIG92ZXJsYXBNYXAs
IGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQsIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSk7
CisgICAgfQorCiAgICAgCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93
TGlzdCA9IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDAsIHNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQpAQCAtMTEx
Niw2ICsxMTMwLDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9z
aXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgICAgIG92ZXJsYXBN
YXAtPmdlb21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0FuY2VzdG9yKGFuY2VzdG9yTGF5ZXIpOwog
fQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24sIE92ZXJsYXBNYXAq
IG92ZXJsYXBNYXAsIENvbXBvc2l0aW5nU3RhdGUmIGNoaWxkU3RhdGUsIGJvb2wmIGxheWVyc0No
YW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSkKK3sKKyAgICBpZiAoIXJl
Z2lvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFkKCk7CisgICAgCisgICAgaWYgKG92ZXJs
YXBNYXApCisgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucHVzaFJlbmRlckZsb3dU
aHJlYWQoZmxvd1RocmVhZCk7CisKKyAgICBpZiAoY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBsYXll
ckxpc3QgPSBmbG93VGhyZWFkLT5nZXRMYXllckxpc3RGb3JSZWdpb24ocmVnaW9uKSkgeworICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMCwgbGlzdFNpemUgPSBsYXllckxpc3QtPnNpemUoKTsgaSA8
IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgIFJlbmRlckxheWVyJiBjdXJMYXllciA9ICps
YXllckxpc3QtPmF0KGkpOworICAgICAgICAgICAgQVNTRVJUKGZsb3dUaHJlYWQtPnJlZ2lvbkZv
ckNvbXBvc2l0ZWRMYXllcihjdXJMYXllcikgPT0gcmVnaW9uKTsKKyAgICAgICAgICAgIGNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhmbG93VGhyZWFkLT5sYXllcigpLCBjdXJMYXllciwg
b3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwgbGF5ZXJzQ2hhbmdlZCwgYW55RGVzY2VuZGFudEhhczNE
VHJhbnNmb3JtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChvdmVybGFwTWFwKQorICAg
ICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnBvcE1hcHBpbmdzVG9BbmNlc3RvcihyZWdp
b24tPmxheWVyT3duZXIoKSk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRD
b21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciYgY2hpbGRMYXllciwgUmVuZGVyTGF5ZXIqIHBh
cmVudExheWVyKQogewogICAgIEFTU0VSVCghcGFyZW50TGF5ZXIgfHwgY2hpbGRMYXllci5hbmNl
c3RvckNvbXBvc2l0aW5nTGF5ZXIoKSA9PSBwYXJlbnRMYXllcik7CkBAIC0xMTU5LDcgKzExOTUs
OCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJU
cmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gb25s
eSBkbyB3b3JrIGhlcmUgdGhhdCBpcyBpbmRlcGVuZGVudCBvZiB3aGV0aGVyIHRoZSBkZXNjZW5k
YW50IGxheWVycwogICAgIC8vIGhhdmUgYmVlbiBwcm9jZXNzZWQuIGNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cygpIHdpbGwgYWxyZWFkeSBoYXZlIGRvbmUgdGhlIHJlcGFpbnQgaWYgbmVj
ZXNzYXJ5LgogCi0gICAgaWYgKGxheWVyLmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQor
ICAgIC8vIERvIG5vdCBpdGVyYXRlIHRoZSBSZW5kZXJGbG93VGhyZWFkIGRpcmVjdGx5LiBXZSBh
cmUgZ29pbmcgdG8gY29sbGVjdCBjb21wb3NpdGVkIGxheWVycyBhcyBwYXJ0IG9mIHJlZ2lvbnMu
CisgICAgaWYgKGxheWVyLmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVy
UmVnaW9ucygpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgUmVuZGVyTGF5ZXJCYWNraW5n
KiBsYXllckJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CkBAIC0xMjEwLDYgKzEyNDcsOSBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJl
bmRlckxheWVyJiBsYXllciwgVmVjdAogICAgICAgICAgICAgY2hpbGRMaXN0LmFwcGVuZChsYXll
ckJhY2tpbmctPmZvcmVncm91bmRMYXllcigpKTsKICAgICB9CiAKKyAgICBpZiAobGF5ZXIucmVu
ZGVyZXIoKS5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29udGFpbmVyKCkpCisgICAgICAgIHJl
YnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZSh0b1JlbmRlckJsb2NrRmxvdyhsYXllci5y
ZW5kZXJlcigpKS5yZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpLCBsYXllckNoaWxkcmVuLCBkZXB0
aCArIDEpOworCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9
IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNp
emUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAg
cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKCpub3JtYWxGbG93TGlzdC0+YXQoaSksIGNoaWxk
TGlzdCwgZGVwdGggKyAxKTsKQEAgLTEyNTMsNiArMTI5MywyMiBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyJiBsYXll
ciwgVmVjdAogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRS
ZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9u
LCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExpc3QsIGludCBkZXB0aCkKK3sKKyAgICBp
ZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJGbG93
VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFkKCk7CisgICAgQVNTRVJUKGZs
b3dUaHJlYWQtPmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSk7CisgICAgaWYg
KGNvbnN0IFJlbmRlckxheWVyTGlzdCogbGF5ZXJMaXN0ID0gZmxvd1RocmVhZC0+Z2V0TGF5ZXJM
aXN0Rm9yUmVnaW9uKHJlZ2lvbikpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGxpc3RT
aXplID0gbGF5ZXJMaXN0LT5zaXplKCk7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAg
ICBSZW5kZXJMYXllciYgY3VyTGF5ZXIgPSAqbGF5ZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAg
IEFTU0VSVChmbG93VGhyZWFkLT5yZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoY3VyTGF5ZXIpID09
IHJlZ2lvbik7CisgICAgICAgICAgICByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoY3VyTGF5
ZXIsIGNoaWxkTGlzdCwgZGVwdGggKyAxKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZENoYW5nZUxvY2F0aW9uKGNvbnN0IElu
dFBvaW50JiBjb250ZW50c09mZnNldCkKIHsKICAgICBpZiAobV9vdmVyZmxvd0NvbnRyb2xzSG9z
dExheWVyKQpAQCAtMTc3MSw5ICsxODI3LDE5IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBSCiAK
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5CZUNvbXBvc2l0ZWQoY29uc3QgUmVuZGVy
TGF5ZXImIGxheWVyKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBXZSBkaXNhYmxlIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIGZvciBlbGVtZW50cyBpbiBhIFJlbmRlckZsb3dUaHJlYWQgYXMgaXQg
ZG9lc24ndCB3b3JrIHByb3Blcmx5LgotICAgIC8vIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzg0
OTAwIHRvIHJlLWVuYWJsZSBpdC4KLSAgICByZXR1cm4gbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nICYmIGxheWVyLmlzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiBsYXllci5yZW5kZXJlcigpLmZs
b3dUaHJlYWRTdGF0ZSgpID09IFJlbmRlckVsZW1lbnQ6Ok5vdEluc2lkZUZsb3dUaHJlYWQ7Cisg
ICAgaWYgKG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyAmJiBsYXllci5pc1NlbGZQYWludGlu
Z0xheWVyKCkpIHsKKyAgICAgICAgaWYgKCFsYXllci5pc0luc2lkZUZsb3dUaHJlYWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIC8vIENTUyBSZWdpb25zIGZsb3cgdGhy
ZWFkcyBkbyBub3QgbmVlZCB0byBiZSBjb21wb3NpdGVkIGFzIHdlIHVzZSBjb21wb3NpdGVkIFJl
bmRlclJlZ2lvbnMKKyAgICAgICAgLy8gdG8gcmVuZGVyIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBS
ZW5kZXJGbG93VGhyZWFkLgorICAgICAgICBpZiAobGF5ZXIuaXNSZW5kZXJGbG93VGhyZWFkKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gQSBmYXN0ZXIgd2F5IG9m
IHNheWluZyBsYXllci5lbmNsb3NpbmdGbG93VGhyZWFkTGF5ZXIoKS0+aXNGbG93VGhyZWFkQ29s
bGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkKKyAgICAgICAgcmV0dXJuIGxheWVy
LmlzSW5zaWRlT3V0T2ZGbG93VGhyZWFkKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0K
IAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0b3JlKGNv
bnN0IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5j
ZXN0b3JMYXllciwgY29uc3QgSW50UmVjdCYgbGF5ZXJDb21wb3NpdGVkQm91bmRzSW5BbmNlc3Rv
ciwgY29uc3QgSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGVkQm91bmRzKSBjb25zdApAQCAtMjE1
NCw4ICsyMjIwLDggQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JJbmRpcmVjdFJlYXNvbihSZW5kZXJMYXllck1vZGUKICAgICBSZW5kZXJMYXllciYg
bGF5ZXIgPSAqdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5kZXJlcikubGF5ZXIoKTsKIAogICAg
IC8vIFdoZW4gYSBsYXllciBoYXMgY29tcG9zaXRlZCBkZXNjZW5kYW50cywgc29tZSBlZmZlY3Rz
LCBsaWtlIDJkIHRyYW5zZm9ybXMsIGZpbHRlcnMsIG1hc2tzIGV0YyBtdXN0IGJlIGltcGxlbWVu
dGVkCi0gICAgLy8gdmlhIGNvbXBvc2l0aW5nIHNvIHRoYXQgdGhleSBhbHNvIGFwcGx5IHRvIHRo
b3NlIGNvbXBvc2l0ZWQgZGVzY2RlbmRhbnRzLgotICAgIGlmIChoYXNDb21wb3NpdGVkRGVzY2Vu
ZGFudHMgJiYgKGxheWVyLnRyYW5zZm9ybSgpIHx8IHJlbmRlcmVyLmNyZWF0ZXNHcm91cCgpIHx8
IHJlbmRlcmVyLmhhc1JlZmxlY3Rpb24oKSkpIHsKKyAgICAvLyB2aWEgY29tcG9zaXRpbmcgc28g
dGhhdCB0aGV5IGFsc28gYXBwbHkgdG8gdGhvc2UgY29tcG9zaXRlZCBkZXNjZW5kYW50cy4KKyAg
ICBpZiAoaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzICYmIChsYXllci50cmFuc2Zvcm0oKSB8fCBy
ZW5kZXJlci5jcmVhdGVzR3JvdXAoKSB8fCByZW5kZXJlci5oYXNSZWZsZWN0aW9uKCkgfHwgcmVu
ZGVyZXIuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKSkgewogICAgICAgICBy
ZWFzb24gPSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0ZvckdyYXBoaWNhbEVmZmVj
dDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDQ3NzYyYWIuLmU3ODNmMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
QEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7
CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NMYXllclVwZGF0ZXI7CiBjbGFz
cyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKK2NsYXNzIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Owog
Y2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBSZW5kZXJXaWRnZXQ7CiBjbGFzcyBTY3JvbGxpbmdD
b29yZGluYXRvcjsKQEAgLTE0MSw3ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gd2UgZGlzY292
ZXIgdGhhdCBhbiBpZnJhbWUgaXMgb3ZlcmxhcHBlZCBkdXJpbmcgcGFpbnRpbmcpLgogICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7CiAKLSAgICAvLyBVcGRhdGUgdGhl
IG1hcHMgdGhhdCB3ZSB1c2UgdG8gZGlzdHJpYnV0ZSBsYXllcnMgdG8gY29yZXNwb25kaW5nIFJl
bmRlclJlZ2lvbnMuCisgICAgLy8gVXBkYXRlIHRoZSBtYXBzIHRoYXQgd2UgdXNlIHRvIGRpc3Ry
aWJ1dGUgbGF5ZXJzIHRvIGNvcmVzcG9uZGluZyByZWdpb25zLgogICAgIHZvaWQgdXBkYXRlUmVu
ZGVyRmxvd1RocmVhZExheWVyc0lmTmVlZGVkKCk7CiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBj
b21wb3NpdGluZyBzdGF0ZSBvZiB0aGUgZ2l2ZW4gbGF5ZXIuIFJldHVybnMgdHJ1ZSBpZiB0aGF0
IHN0YXRlIGNoYW5nZWQuCkBAIC0zMjMsMTAgKzMyNCwxNiBAQCBwcml2YXRlOgogCiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIGFueSBsYXllcidzIGNvbXBvc2l0aW5nIGNoYW5nZWQKICAgICB2b2lk
IGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3JMYXll
ciwgUmVuZGVyTGF5ZXImLCBPdmVybGFwTWFwKiwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmLCBi
b29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBkZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pOworCisg
ICAgdm9pZCBjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQqLCBPdmVybGFwTWFwKiwgQ29tcG9zaXRpbmdTdGF0ZSYsIGJvb2wmIGxheWVy
c0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSk7CiAgICAgCiAgICAg
Ly8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwgcGFyZW50aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRp
bmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFycmF5IG9mIGNoaWxkIGxheWVycyBmb3IgdGhl
IGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIuCiAgICAgdm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdM
YXllclRyZWUoUmVuZGVyTGF5ZXImLCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZEdyYXBo
aWNzTGF5ZXJzT2ZFbmNsb3NpbmdMYXllciwgaW50IGRlcHRoKTsKIAorICAgIC8vIFJlY3Vyc2Vz
IGRvd24gdGhlIFJlbmRlckZsb3dUaHJlYWQgdHJlZSwgcGFyZW50aW5nIGRlc2NlbmRhbnQgY29t
cG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFycmF5IG9mIGNoaWxkIAorICAgIC8v
IGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIgY29ycmVzcG9uZGluZyB0
byB0aGUgYW5vbnltb3VzIHJlZ2lvbiAodGhhdCBiZWxvbmdzIHRvIHRoZSByZWdpb24ncyBwYXJl
bnQpLgorICAgIHZvaWQgcmVidWlsZFJlZ2lvbkNvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlck5h
bWVkRmxvd0ZyYWdtZW50KiwgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRMaXN0LCBpbnQg
ZGVwdGgpOworCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwgdXBkYXRpbmcgbGF5ZXIg
Z2VvbWV0cnkgb25seS4KICAgICB2b2lkIHVwZGF0ZUxheWVyVHJlZUdlb21ldHJ5KFJlbmRlckxh
eWVyJiwgaW50IGRlcHRoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IGVhYTEyZjcuLjUwYTcwNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcApAQCAt
NTA4LDYgKzUwOCwzNiBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb2xsZWN0TGF5ZXJG
cmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmIGZyYWdtZW50cywgY29ucwogICAgIH0KIH0KIAordm9p
ZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQ
b3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJv
dW5kcykKK3sKKyAgICBMYXlvdXRVbml0IGxheWVyTG9naWNhbFRvcCA9IGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBsYXllck9mZnNldC55KCkgOiBsYXllck9mZnNldC54KCk7CisgICAgdW5z
aWduZWQgc3RhcnRDb2x1bW4gPSBjb2x1bW5JbmRleEF0T2Zmc2V0KGxheWVyTG9naWNhbFRvcCk7
CisgICAgCisgICAgTGF5b3V0VW5pdCBjb2xHYXAgPSBjb2x1bW5HYXAoKTsKKyAgICBMYXlvdXRV
bml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVkQ29sdW1uV2lkdGgoKTsKKyAgICAKKyAgICBM
YXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uID0gZmxvd1RocmVhZFBvcnRpb25SZWN0QXQoc3Rh
cnRDb2x1bW4pOworICAgIExheW91dFBvaW50IHRyYW5zbGF0aW9uT2Zmc2V0OworCisgICAgTGF5
b3V0VW5pdCBpbmxpbmVPZmZzZXQgPSBzdGFydENvbHVtbiAqIChjb2xMb2dpY2FsV2lkdGggKyBj
b2xHYXApOworICAgIGlmICghc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAg
ICAgICBpbmxpbmVPZmZzZXQgPSAtaW5saW5lT2Zmc2V0OworICAgIHRyYW5zbGF0aW9uT2Zmc2V0
LnNldFgoaW5saW5lT2Zmc2V0KTsKKyAgICAgICAgCisgICAgTGF5b3V0VW5pdCBibG9ja09mZnNl
dCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyAtZmxvd1RocmVhZFBvcnRpb24ueSgpIDog
LWZsb3dUaHJlYWRQb3J0aW9uLngoKTsKKyAgICBpZiAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01v
ZGUoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkpCisgICAgICAgIGJsb2NrT2Zmc2V0ID0gLWJsb2Nr
T2Zmc2V0OworICAgIHRyYW5zbGF0aW9uT2Zmc2V0LnNldFkoYmxvY2tPZmZzZXQpOworICAgIAor
ICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgdHJhbnNsYXRpb25P
ZmZzZXQgPSB0cmFuc2xhdGlvbk9mZnNldC50cmFuc3Bvc2VkUG9pbnQoKTsKKworICAgIC8vIEZJ
WE1FOiBUaGUgdHJhbnNsYXRpb24gbmVlZHMgdG8gaW5jbHVkZSB0aGUgbXVsdGljb2x1bW4gc2V0
J3MgY29udGVudCBvZmZzZXQgd2l0aGluIHRoZQorICAgIC8vIG11bHRpY29sdW1uIGJsb2NrIGFz
IHdlbGwuIFRoaXMgd29uJ3QgYmUgYW4gaXNzdWUgdW50aWwgd2Ugc3RhcnQgY3JlYXRpbmcgbXVs
dGlwbGUgbXVsdGljb2x1bW4gc2V0cy4KKyAgICAKKyAgICByZWdpb25Cb3VuZHMubW92ZUJ5KHJv
dW5kZWRJbnRQb2ludCgtdHJhbnNsYXRpb25PZmZzZXQpKTsKK30KKwogY29uc3QgY2hhciogUmVu
ZGVyTXVsdGlDb2x1bW5TZXQ6OnJlbmRlck5hbWUoKSBjb25zdAogeyAgICAKICAgICByZXR1cm4g
IlJlbmRlck11bHRpQ29sdW1uU2V0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmgKaW5kZXggZGVmZmJkMS4uY2VhYjM3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKQEAgLTExOCw2ICsx
MTgsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RMYXllckZyYWdtZW50
cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRpbmdCb3gsIGNv
bnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBJbnRQb2lu
dCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykgT1ZFUlJJREU7CisKICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKICAgICAKICAgICB2b2lkIHBh
aW50Q29sdW1uUnVsZXMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dG
cmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmgKaW5kZXggNjM1Mjc1MC4uMTdhZDY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKQEAgLTUxLDYgKzUxLDEzIEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNQc2V1ZG9FbGVtZW50UmVnaW9uKCkgY29uc3QgeyByZXR1cm4g
cGFyZW50KCkgJiYgcGFyZW50KCktPmlzUHNldWRvRWxlbWVudCgpOyB9CiAKKyAgICAvLyBXaGVu
IHRoZSBjb250ZW50IGluc2lkZSB0aGUgcmVnaW9uIHJlcXVpcmVzIHRoZSByZWdpb24gdG8gaGF2
ZSBhIGxheWVyLCB0aGUgbGF5ZXIgd2lsbCBiZSBjcmVhdGVkIG9uIHRoZSByZWdpb24ncworICAg
IC8vIHBhcmVudCByZW5kZXJlciBpbnN0ZWFkLgorICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMg
dGhhdCByZW5kZXJlciBob2xkaW5nIHRoZSBsYXllci4KKyAgICAvLyBUaGUgcmV0dXJuIHZhbHVl
IG1heSBiZSBudWxsLgorICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGxheWVyT3duZXIoKSBj
b25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KCkgPworICAgICAgICB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QocGFyZW50KCkpIDogbnVs
bHB0cjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVBdXRvTG9n
aWNhbEhlaWdodCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDFiNjZmNjkuLjkyNTMyMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBA
IC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRy
PFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAgIDogUmVuZGVyRmxvd1RocmVhZChkb2N1
bWVudCkKKyAgICAsIG1fZmxvd1RocmVhZENoaWxkTGlzdChhZG9wdFB0cihuZXcgRmxvd1RocmVh
ZENoaWxkTGlzdCgpKSkKICAgICAsIG1fb3ZlcnNldCh0cnVlKQogICAgICwgbV9uYW1lZEZsb3co
bmFtZWRGbG93KQogICAgICwgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyKHRoaXMsICZS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCkK
QEAgLTk5LDggKzEwMCw4IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjp1cGRhdGVXcml0
aW5nTW9kZSgpCiAKIFJlbmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVu
ZGVyZXJGb3JOb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgRmxvd1RocmVhZENoaWxkTGlz
dDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuYmVnaW4oKTsKLSAg
ICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRD
aGlsZExpc3QuZW5kKCk7CisgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmJlZ2luKCk7CisgICAgRmxvd1RocmVhZENoaWxk
TGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5lbmQoKTsK
IAogICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiBj
aGlsZCA9ICppdDsKQEAgLTExNSwxMSArMTE2LDExIEBAIFJlbmRlck9iamVjdCogUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiAKIFJl
bmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91c1JlbmRlcmVyRm9yTm9k
ZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIGlmIChtX2Zsb3dUaHJlYWRDaGlsZExpc3QuaXNF
bXB0eSgpKQorICAgIGlmIChtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRvciBi
ZWdpbiA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC5iZWdpbigpOwotICAgIEZsb3dUaHJlYWRDaGls
ZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC5lbmQoKTsK
KyAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRvciBiZWdpbiA9IG1fZmxvd1Ro
cmVhZENoaWxkTGlzdC0+YmVnaW4oKTsKKyAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9p
dGVyYXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmVuZCgpOwogICAgIEZsb3dUaHJl
YWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZW5kOwogCiAgICAgZG8gewpAQCAtMTQ5
LDE0ICsxNTAsMTQgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmFkZEZsb3dDaGlsZChS
ZW5kZXJPYmplY3QqIG5ld0NoaWxkKQogCiAgICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9
IG5leHRSZW5kZXJlckZvck5vZGUoY2hpbGROb2RlKTsKICAgICBpZiAoYmVmb3JlQ2hpbGQpCi0g
ICAgICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC5pbnNlcnRCZWZvcmUoYmVmb3JlQ2hpbGQsIG5l
d0NoaWxkKTsKKyAgICAgICAgbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5pbnNlcnRCZWZvcmUoYmVm
b3JlQ2hpbGQsIG5ld0NoaWxkKTsKICAgICBlbHNlCi0gICAgICAgIG1fZmxvd1RocmVhZENoaWxk
TGlzdC5hZGQobmV3Q2hpbGQpOworICAgICAgICBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmFkZChu
ZXdDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZW1vdmVGbG93Q2hp
bGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAgICBtX2Zsb3dUaHJlYWRDaGlsZExpc3QucmVt
b3ZlKGNoaWxkKTsKKyAgICBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPnJlbW92ZShjaGlsZCk7CiB9
CiAKIGJvb2wgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkZXBlbmRzT24oUmVuZGVyTmFtZWRGbG93
VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNvbnN0CkBAIC03MjcsNCArNzI4LDE1IEBA
IHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpnZXRSYW5nZXMoVmVjdG9yPFJlZlB0cjxSYW5n
ZT4+JiByYW5nZU9iamVjdHMsIGNvbnN0CiAgICAgfQogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAoreworICAgIC8vIFdlIG9ubHkgbmVlZCB0byBt
YXAgbGF5ZXJzIHRvIHJlZ2lvbnMgZm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KKyAgICAvLyBNdWx0
aS1jb2x1bW4gdGhyZWFkcyBhcmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgcmVnaW9ucyBhbmQg
ZG8gbm90IHJlcXVpcmUKKyAgICAvLyBkaXN0cmlidXRpbmcgdGhlIGxheWVycy4KKworICAgIHJl
dHVybiB0cnVlOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCA0OGYwMWNlLi45M2EwNjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCkBAIC01
Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkRmxvd0NoaWxkKFJlbmRlck9iamVj
dCogbmV3Q2hpbGQpOwogICAgIHZvaWQgcmVtb3ZlRmxvd0NoaWxkKFJlbmRlck9iamVjdCopOwot
ICAgIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiAhbV9mbG93VGhyZWFkQ2hpbGRM
aXN0LmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiAh
bV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5pc0VtcHR5KCk7IH0KICNpZm5kZWYgTkRFQlVHCi0gICAg
Ym9vbCBoYXNDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBtX2Zsb3dU
aHJlYWRDaGlsZExpc3QuY29udGFpbnMoY2hpbGQpOyB9CisgICAgYm9vbCBoYXNDaGlsZChSZW5k
ZXJPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmNv
bnRhaW5zKGNoaWxkKTsgfQogI2VuZGlmCiAKICAgICB2b2lkIHB1c2hEZXBlbmRlbmNpZXMoUmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdCYpOwpAQCAtODAsNiArODAsMTAgQEAgcHVibGljOgogICAg
IGJvb2wgaXNNYXJrZWRGb3JEZXN0cnVjdGlvbigpIGNvbnN0OwogICAgIHZvaWQgZ2V0UmFuZ2Vz
KFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYsIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwogCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0
c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3QgT1ZFUlJJREU7CisjZW5kaWYKKwog
cHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TWFya0ZvckRlc3RydWN0aW9uKCk7CiAgICAgdm9pZCBy
ZXNldE1hcmtGb3JEZXN0cnVjdGlvbigpOwpAQCAtMTE5LDcgKzEyMyw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBIb2xkcyB0aGUgc29ydGVkIGNoaWxkcmVuIG9mIGEgbmFtZWQgZmxvdy4gVGhpcyBp
cyB0aGUgb25seSB3YXkgd2UgY2FuIGdldCB0aGUgb3JkZXJpbmcgcmlnaHQuCiAgICAgdHlwZWRl
ZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhyZWFkQ2hpbGRMaXN0OwotICAgIEZs
b3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRMaXN0OworICAgIE93blB0cjxGbG93
VGhyZWFkQ2hpbGRMaXN0PiBtX2Zsb3dUaHJlYWRDaGlsZExpc3Q7CiAKICAgICBOYW1lZEZsb3dD
b250ZW50RWxlbWVudHMgbV9jb250ZW50RWxlbWVudHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggODliOTcwZC4uN2RkMWM5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTczMCw2ICs3MzAsMTYgQEAgdm9p
ZCBSZW5kZXJSZWdpb246OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKQogICAgIH0KIH0KIAordm9pZCBS
ZW5kZXJSZWdpb246OmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3Qo
Y29uc3QgSW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdpb25Cb3VuZHMpCit7Cisg
ICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0ID0gZmxvd1RocmVhZFBv
cnRpb25SZWN0KCk7CisgICAgZmxvd1RocmVhZCgpLT5mbGlwRm9yV3JpdGluZ01vZGUoZmxpcHBl
ZEZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7CisgICAgcmVnaW9uQm91bmRzLm1vdmVCeShyb3VuZGVk
SW50UG9pbnQoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdC5sb2NhdGlvbigpKSk7CisKKyAg
ICBVTlVTRURfUEFSQU0obGF5ZXJPZmZzZXQpOworfQorCisKIFJlbmRlck92ZXJmbG93KiBSZW5k
ZXJSZWdpb246OmVuc3VyZU92ZXJmbG93Rm9yQm94KGNvbnN0IFJlbmRlckJveCogYm94KQogewog
ICAgIFJlbmRlckJveFJlZ2lvbkluZm8qIGJveEluZm8gPSByZW5kZXJCb3hSZWdpb25JbmZvKGJv
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggOWRhNWIyZC4u
ZGU0MDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTM3
LDYgKzEzNyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0TGF5ZXJGcmFn
bWVudHMoTGF5ZXJGcmFnbWVudHMmLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgTGF5b3V0UmVj
dCYpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhy
ZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdp
b25Cb3VuZHMpOyAvLyBsYXllck9mZnNldCBpcyBuZWVkZWQgZm9yIG11bHRpLWNvbHVtbi4KKwog
ICAgIHZvaWQgYWRkTGF5b3V0T3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgY29uc3Qg
TGF5b3V0UmVjdCYpOwogICAgIHZvaWQgYWRkVmlzdWFsT3ZlcmZsb3dGb3JCb3goY29uc3QgUmVu
ZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIExheW91dFJlY3QgbGF5b3V0T3ZlcmZs
b3dSZWN0Rm9yQm94KGNvbnN0IFJlbmRlckJveCopOwpAQCAtMjQ1LDggKzI0NywyMSBAQCBpbmxp
bmUgY29uc3QgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2Jq
ZWN0KTsKIH0KIAoraW5saW5lIFJlbmRlclJlZ2lvbiYgdG9SZW5kZXJSZWdpb24oUmVuZGVyT2Jq
ZWN0JiBvYmplY3QpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2Jq
ZWN0LmlzUmVuZGVyUmVnaW9uKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJSZWdp
b24mPihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3QgUmVuZGVyUmVnaW9uJiB0b1JlbmRlclJl
Z2lvbihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJSZWdpb24oKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IFJlbmRlclJlZ2lvbiY+KG9iamVjdCk7Cit9CisKIC8vIFRoaXMgd2ls
bCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KIHZvaWQgdG9SZW5kZXJS
ZWdpb24oY29uc3QgUmVuZGVyUmVnaW9uKik7Cit2b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJl
bmRlclJlZ2lvbiYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCAyYjZmMDkzLi5hYzM0MTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBA
IC03NzcsMTggKzc3NywyMiBAQCBzdGF0aWMgdm9pZCB3cml0ZUxheWVycyhUZXh0U3RyZWFtJiB0
cywgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZQogICAgIGlmIChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiogcG9zTGlzdCA9IGwtPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAg
ICBzaXplX3QgbGF5ZXJDb3VudCA9IDA7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
IT0gcG9zTGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBpZiAoIXBvc0xpc3QtPmF0KGkp
LT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgIGlmICghcG9zTGlz
dC0+YXQoaSktPmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9u
cygpKQogICAgICAgICAgICAgICAgICsrbGF5ZXJDb3VudDsKICAgICAgICAgaWYgKGxheWVyQ291
bnQpIHsKICAgICAgICAgICAgIGludCBjdXJySW5kZW50ID0gaW5kZW50OwotICAgICAgICAgICAg
aWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xheWVyTmVzdGluZykgewotICAgICAgICAg
ICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwotICAgICAgICAgICAgICAgIHRzIDw8ICIg
cG9zaXRpdmUgei1vcmRlciBsaXN0KCIgPDwgbGF5ZXJDb3VudCA8PCAiKVxuIjsKLSAgICAgICAg
ICAgICAgICArK2N1cnJJbmRlbnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCi0g
ICAgICAgICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIsIHBvc0xpc3QtPmF0
KGkpLCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwgYmVoYXZpb3IpOworICAgICAgICAgICAg
Ly8gV2Ugb25seSBwcmludCB0aGUgaGVhZGVyIGlmIHRoZXJlJ3MgYXQgbGlzdCBhIG5vbi1SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQgcGFydCBvZiB0aGUgbGlzdC4KKyAgICAgICAgICAgIGlmICghcG9z
TGlzdC0+c2l6ZSgpIHx8ICFwb3NMaXN0LT5hdCgwKS0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dy
YXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYmVoYXZp
b3IgJiBSZW5kZXJBc1RleHRTaG93TGF5ZXJOZXN0aW5nKSB7CisgICAgICAgICAgICAgICAgICAg
IHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAgICAgICAgICAgICAgICB0cyA8PCAiIHBv
c2l0aXZlIHotb3JkZXIgbGlzdCgiIDw8IHBvc0xpc3QtPnNpemUoKSA8PCAiKVxuIjsKKyAgICAg
ICAgICAgICAgICAgICAgKytjdXJySW5kZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBwcmludCBuYW1lZCBmbG93cyB0d2ljZS4K
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFwb3NMaXN0LT5hdChpKS0+aXNGbG93VGhyZWFkQ29s
bGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICB3cml0ZUxheWVycyh0cywgcm9vdExheWVyLCBwb3NMaXN0LT5hdChpKSwgcGFpbnREaXJ0
eVJlY3QsIGN1cnJJbmRlbnQsIGJlaGF2aW9yKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="237263"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214693</attachid>
            <date>2013-10-19 23:47:04 -0700</date>
            <delta_ts>2013-10-21 12:36:51 -0700</delta_ts>
            <desc>patch that fixes the failing test. the inline keyword was causing the build to fail.</desc>
            <filename>patch120457CollectLayersAnonymous.diff</filename>
            <type>text/plain</type>
            <size>104587</size>
            <attacher name="Mihai Maerean">mmaerean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOTVlOGEwLi4xODljNDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTMtMTAt
MTggIE1paGFpIE1hZXJlYW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBS
ZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0
ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zv
cm0taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZWdpb25zL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zv
cm1lZC1jaGlsZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZyb20tb25lLXJlZ2lv
bi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGlu
Zy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVh
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Jl
Z2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12
aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5z
aWRlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3Ry
YW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJl
ci1sYXllci1jb21wb3NpdGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZ2lvbnMv
ei1pbmRleC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29t
cG9zaXRpbmcvcmVnaW9ucy96LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVs
dGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLmh0
bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50
aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0xMC0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgd2ViYXVkaW8vIHRlc3RzIG9uIERSVC9NYWMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNm
b3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njk3NzQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10cmFuc2Zvcm0taW5zaWRl
LXJlZ2lvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBs
YXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUg
cmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJr
aXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13
ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVkZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJfQorCQkJ
LmNvbnRlbnQgeworCQkJfQorCQkJLnJlZ2lvbiB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90
YXRlWigwZGVnKTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVn
aW9uKi8KKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdD4KKwkJCXdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCAibG9hZCIsIGZ1bmN0aW9uICgpIHsKKwkJCQl2YXIgZGl2ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3RyYW5zZm9ybWVkIik7CisJCQkJZm9yKHZhciBpID0gMDsgaSA8IDEwOyAr
K2kgKSB7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAidHJhbnNmb3JtZWQgY29udGVudCI7CisJCQkJ
CWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJCQlkaXYuY2xhc3NOYW1lID0gImNvbnRlbnQi
OworCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKwkJCQl9CisJCQl9LCBmYWxzZSk7CisJ
CTwvc2NyaXB0PgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPGRpdiBpZD0idHJhbnNmb3JtZWQiIGNs
YXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxk
aXYgaWQ9InRyYW5zZm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3Jt
ZWQgY29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5ub3QgdHJhbnNmb3JtZWQg
Y29udGVudDwvZGl2PgorCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCQk8ZGl2PlRlc3Qg
UEFTU0VTIGlmIGl0IGRvZXNuJ3QgY3Jhc2ggb3IgYXNzZXJ0PC9kaXY+CisJPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24uaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1y
ZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTFlM2Y1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9jcmFzaC10
cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNd
IFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRl
ciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJ
CS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisJCQkudHJhbnNmb3JtZWQgewor
CQkJCS13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVkZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJ
fQorCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOnRoZUZsb3c7CisJCQl9CisJ
CQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTp0aGVGbG93OworCQkJfQorCQk8L3N0
eWxlPgorCQk8c2NyaXB0PgorCQkJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgZnVu
Y3Rpb24gKCkgeworCQkJCXZhciBkaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdHJhbnNm
b3JtZWQiKTsKKwkJCQlmb3IodmFyIGkgPSAwOyBpIDwgMTA7ICsraSApIHsKKwkJCQkJZGl2LmNs
YXNzTmFtZSA9ICJ0cmFuc2Zvcm1lZCBjb250ZW50IjsKKwkJCQkJZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CisJCQkJCWRpdi5jbGFzc05hbWUgPSAiY29udGVudCI7CisJCQkJCWRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOworCQkJCX0KKwkJCX0sIGZhbHNlKTsKKwkJPC9zY3JpcHQ+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVkIGNv
bnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBpZD0idHJhbnNmb3JtZWQi
IGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJ
CTxkaXYgY2xhc3M9ImNvbnRlbnQiPm5vdCB0cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxk
aXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisJCTxkaXY+VGVzdCBQQVNTRVMgaWYgaXQgZG9lc24n
dCBjcmFzaCBvciBhc3NlcnQ8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9u
cy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNm
b3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZmM5NzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0
bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5v
bmU7CisJCQl9CisKKwkJCS5jb250ZW50IHsKKwkJCX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJ
CQkucmVnaW9uIHsKKwkJCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisJCQkJZmxvYXQ6IHJpZ2h0
OworCQkJCXdpZHRoOiAyMTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6ICNlZWU7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwZGVnKTsgLypzbyB0
aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCX0KKwkJCS50
ZXh0IHsKKwkJCQl3aWR0aDogNjAwcHg7CisJCQl9CisJCQkqIHsKKwkJCQlib3JkZXI6c29saWQg
MXB4ICM4ODg7CisJCQkJcGFkZGluZzogMnB4OworCQkJCW1hcmdpbjogM3B4OworCQkJfQorCQk8
L3N0eWxlPgorCQk8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwv
c2NyaXB0PgorCQk8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3Jp
cHQ+CisKKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4K
KwkJCWZ1bmN0aW9uIHRlc3REb25lKCkgeworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJ
CQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisJCQl9CisKKwkJCXdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKwkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgndmlkZW8nKVswXTsKKwkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vbWVkaWEvY29udGVu
dC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKKwkJCX07CisJCTwvc2NyaXB0PgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJPGRpdiBjbGFzcz0idGV4dCI+CisJCQlMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRh
dGUsIHBvcnJvLCBkaWduaXNzaW1vcyBmdWdhIGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVt
cG9yYSBlYXJ1bSBvZGl0IGFzcGVyaW9yZXMgcXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNw
aWNpYXRpcyBpc3RlIGV0IHZvbHVwdGF0ZW0gbW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4
aW1lIG9mZmljaWlzIGl1c3RvIGRvbG9yIHV0IGRpY3RhLiAKKwkJCTxkaXYgY2xhc3M9InJlZ2lv
biI+CisJCQkJPGRpdiBjbGFzcz0iY29udGVudCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9u
PC9kaXY+CisJCQkJPHZpZGVvIGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIiBoZWlnaHQ9IjEw
MCIgd2lkdGg9Ijk2IiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQkJPGRpdiBjbGFz
cz0iY29udGVudCB0cmFuc2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9kaXY+
CisJCQk8L2Rpdj4KKwkJCSBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMg
cmVpY2llbmRpcyBpcHNhIGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVu
aW0gbWludXMgcGVyZmVyZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBt
aW5pbWEgc3VzY2lwaXQuPC9kaXY+CisJCTxkaXYgY2xhc3M9InRleHQiPkxvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBNb2xsaXRpYSwgY3Vw
aWRpdGF0ZSwgcG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3JydXB0aSBzdXNjaXBp
dCB0ZW1wb3JhIGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1dGEgcmVwZWxsYXQg
cGVyc3BpY2lhdGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFnbmkgYSB2b2x1cHRh
cyBtYXhpbWUgb2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIEV0LCBhZCBzaXQgcHJhZXNl
bnRpdW0gcmVjdXNhbmRhZSBvbW5pcyByZWljaWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1
bSB2ZXJvIHJlcHJlaGVuZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhp
bWUgZnVnaWF0IGl1cmUgc29sdXRhIG1pbmltYSBzdXNjaXBpdC48L2Rpdj4KKwk8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNo
aWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL2Zsb2F0ZWQtcmVnaW9u
LXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45ODYxZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLmh0bWwKQEAg
LTAsMCArMSw1OCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgIzwvdGl0bGU+CisJ
CTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJ
CQl9CisKKwkJCS5jb250ZW50IHsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogdGhlRmxvdzsKKwkJ
CX0KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRl
Zykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ct
ZnJvbTogdGhlRmxvdzsKKwkJCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisJCQkJZmxvYXQ6IHJp
Z2h0OworCQkJCXdpZHRoOiAyMTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91
bmQtY29sb3I6ICNlZWU7CisJCQl9CisJCQkudGV4dCB7CisJCQkJd2lkdGg6IDYwMHB4OworCQkJ
fQorCQkJKiB7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsK
KwkJCQltYXJnaW46IDNweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4u
L21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJ
CQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
CQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRl
byh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7
CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InRl
eHQiPgorCQkJTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2lj
aW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0YXRlLCBwb3JybywgZGlnbmlzc2ltb3MgZnVnYSBp
bXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRlbXBvcmEgZWFydW0gb2RpdCBhc3BlcmlvcmVzIHF1
aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJzcGljaWF0aXMgaXN0ZSBldCB2b2x1cHRhdGVtIG1v
bGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1heGltZSBvZmZpY2lpcyBpdXN0byBkb2xvciB1dCBk
aWN0YS4gCisJCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCQkJRXQsIGFkIHNpdCBwcmFl
c2VudGl1bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNpZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50
aXVtIHZlcm8gcmVwcmVoZW5kZXJpdCBlbmltIG1pbnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1h
eGltZSBmdWdpYXQgaXVyZSBzb2x1dGEgbWluaW1hIHN1c2NpcGl0LgorCQk8L2Rpdj4KKwkJPGRp
diBjbGFzcz0idGV4dCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQuIE1vbGxpdGlhLCBjdXBpZGl0YXRlLCBwb3JybywgZGlnbmlzc2ltb3Mg
ZnVnYSBpbXBlZGl0IGNvcnJ1cHRpIHN1c2NpcGl0IHRlbXBvcmEgZWFydW0gb2RpdCBhc3Blcmlv
cmVzIHF1aWEgbmFtIHNvbHV0YSByZXBlbGxhdCBwZXJzcGljaWF0aXMgaXN0ZSBldCB2b2x1cHRh
dGVtIG1vbGVzdGlhZSBtYWduaSBhIHZvbHVwdGFzIG1heGltZSBvZmZpY2lpcyBpdXN0byBkb2xv
ciB1dCBkaWN0YS4gRXQsIGFkIHNpdCBwcmFlc2VudGl1bSByZWN1c2FuZGFlIG9tbmlzIHJlaWNp
ZW5kaXMgaXBzYSBldmVuaWV0IGFjY3VzYW50aXVtIHZlcm8gcmVwcmVoZW5kZXJpdCBlbmltIG1p
bnVzIHBlcmZlcmVuZGlzIHNhcGllbnRlIG1heGltZSBmdWdpYXQgaXVyZSBzb2x1dGEgbWluaW1h
IHN1c2NpcGl0LjwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5Mb25nIHRleHQgaW5zaWRl
IHRoZSByZWdpb248L2Rpdj4KKwkJPHZpZGVvIGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIiBo
ZWlnaHQ9IjEwMCIgd2lkdGg9Ijk2IiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCTxk
aXYgY2xhc3M9ImNvbnRlbnQgdHJhbnNmb3JtZWQiPkxvbmcgdGV4dCBpbnNpZGUgdGhlIHJlZ2lv
bjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJv
bS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZ2lvbnMvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YWU0MWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5
ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY0
IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10g
VGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVy
IHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJ
LXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJLmNvbnRlbnQgeworCQkJ
CXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6
IFllbGxvdzsKKwkJCX0KKworCQkJYm9keSAucmVnaW9uOm50aC1jaGlsZCgyKSAuY29udGVudCB7
CisJCQkJbWFyZ2luLXRvcDogMHB4OyAvKm1hcmdpbnMgYXJlIGNvbGxhcHNlZCB3aGVuIGZyYWdt
ZW50ZWQqLworCQkJfQorCisJCQkubW92ZXNUaGVMYXllclRvTmV4dFJlZ2lvbiB7CisJCQkJaGVp
Z2h0OiAyMjVweDsKKwkJCX0KKworCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsK
KwkJCQktd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDFweCk7IC8qc28gdGhlIGRpdiBpcyBj
b21wb3NpdGVkKi8KKwkJCQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJh
Y2tncm91bmQtY29sb3I6IExpbWU7CisJCQl9CisKKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQt
dHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1
c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQloZWlnaHQ6IDIzMHB4OworCQkJCWJvcmRlcjpzb2xp
ZCAxcHggIzg4ODsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUg
dGV4dCAxLgorCisJCTxkaXYgY2xhc3M9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJ3aWxsQmVBZGRl
ZFRvVGhlRmxvdyIgY2xhc3M9ImNvbnRlbnQgbW92ZXNUaGVMYXllclRvTmV4dFJlZ2lvbiI+Z29l
cyBpbiB0aGUgMXN0IHJlZ2lvbi48L2Rpdj4KKwkJPC9kaXY+CisKKwkJc29tZSB0ZXh0LgorCisJ
CTxkaXYgY2xhc3M9InJlZ2lvbiI+CisJCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij4KKwkJCQlzb21l
IHRleHQgMi4KKwkJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+CisJ
CQkJCXNvbWUgdGV4dCAzLgorCQkJCTwvZGl2PgorCQkJCXNvbWUgdGV4dCA0LgorCQkJCTxkaXY+
c29tZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29t
ZSB0ZXh0LjwvZGl2PgorCQkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgorCQkJPC9kaXY+CisJCTwv
ZGl2PgorCisJCXNvbWUgdGV4dCA1LgorCisJCTxwPklmIHdlIGhhdmUgbGF5ZXJzIHRoYXQgbW92
ZWQgZnJvbSBvbmUgcmVnaW9uIHRvIGFub3RoZXIsIHdlIHRyaWdnZXIgYSBjb21wb3NpdGVkIGxh
eWVycyByZWJ1aWxkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb25zIHdpbGwgY29sbGVjdCB0
aGUgcmlnaHQgbGF5ZXJzLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9t
b3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL21vdmUtbGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDZiNDgwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9tb3ZlLWxheWVyLWZy
b20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+CisJ
PGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJv
bSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycg
bGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1z
bW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCS5jb250ZW50IHsKKwkJCQktd2Via2l0LWZsb3ct
aW50bzogZmxvdzsKKwkJCQl3aWR0aDogMTUwcHg7CisJCQkJaGVpZ2h0OiAxMDBweDsKKwkJCQli
YWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQl9CisKKwkJCSNjYXVzZXNUaGVSZWdpb25Ub0Jl
Q29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKKwkJ
CQl3aWR0aDogMTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6
IExpbWU7CisJCQl9CisKKwkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIHsKKwkJCQloZWln
aHQ6IDIyNXB4OworCQkJfQorCisJCQkucmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTog
ZmxvdzsKKwkJCQloZWlnaHQ6IDIzMHB4OworCQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKKwkJ
CX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCisJCTxk
aXYgY2xhc3M9ImNvbnRlbnQiPmdvZXMgaW4gdGhlIDFzdCByZWdpb24uPC9kaXY+CisKKwkJPGRp
diBjbGFzcz0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgaWQ9ImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQlzb21lIHRleHQgMy4KKwkJCTwvZGl2PgorCQkJ
c29tZSB0ZXh0IDQuCisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KKwkJCTxkaXY+c29tZSB0ZXh0
LjwvZGl2PgorCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+CisJCQk8ZGl2PnNvbWUgdGV4dC48L2Rp
dj4KKwkJPC9kaXY+CisKKwkJPGRpdiBjbGFzcz0icmVnaW9uIiBpZD0icjEiPjwvZGl2PgorCisJ
CXNvbWUgdGV4dC4KKworCQk8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMiI+PC9kaXY+CisJCXNv
bWUgdGV4dCA1LgorCisJCTxwPklmIHdlIGhhdmUgbGF5ZXJzIHRoYXQgbW92ZWQgZnJvbSBvbmUg
cmVnaW9uIHRvIGFub3RoZXIsIHdlIHRyaWdnZXIgYSBjb21wb3NpdGVkIGxheWVycyByZWJ1aWxk
IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWdpb25zIHdpbGwgY29sbGVjdCB0aGUgcmlnaHQgbGF5
ZXJzLjwvcD4KKworCQk8c2NyaXB0PgorCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGRv
IHRoZSBsYXlvdXQuCisJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IC5jb250ZW50OmZp
cnN0LWNoaWxkIikuY2xhc3NOYW1lID0gImNvbnRlbnQgbW92ZXNUaGVMYXllclRvTmV4dFJlZ2lv
biI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ct
Ym9yZGVyLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kMzkwZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBz
aG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJ
PHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJ
CX0KKworCQkJI2NvbnRlbnQgeworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4
OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRw
eCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCSNy
ZWdpb24geworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKKwkJCQlib3JkZXI6
IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7CisJ
CQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlw
eDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9o
ZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0icmVnaW9uIj4KKwkJCTxk
aXYgaWQ9ImNvbnRlbnQiPgorCQkJCXNvbWUgdGV4dCAyLgorCQkJCTxkaXYgaWQ9ImNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIj4KKwkJCQkJc29tZSB0ZXh0IDMuCisJCQkJPC9kaXY+CisJ
CQkJc29tZSB0ZXh0IDQuCisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8
cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRp
bmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0byBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFk
b3ctYm9yZGVyLXBhZGRpbmctZm9yLXZpZGVvLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jNzM5OWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9y
LXZpZGVvLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGh0bWw+CisJPGhlYWQ+CisJ
CTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxv
dyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwv
dGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6
IG5vbmU7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKKwkJCX0KKworCQkJI2NvbnRl
bnQgeworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJ
CQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQl3aWR0aDogOTAlOworCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owor
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlw
dCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0
RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJ
dmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJ
CQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxs
LCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNv
bWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJyZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJ
CQkJc29tZSB0ZXh0IDIuCisJCQkJPHZpZGVvIGhlaWdodD0iMjcwIiB3aWR0aD0iNDgwIiBpZD0i
dmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+CisJCQkJc29tZSB0ZXh0IDQuCisJCQk8L2Rpdj4KKwkJ
PC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHBy
b3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0
byB2aWRlbyBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZp
ZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdp
b24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWYxMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9y
ZGVyLXBhZGRpbmctZm9yLXZpZGVvLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+CisJPGhl
YWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0
aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5
ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9v
dGhpbmc6IG5vbmU7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKKwkJCX0KKworCQkJ
I2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCXdpZHRoOiAxNTBw
eDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0
cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkjcmVnaW9u
IHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJCQl3aWR0aDogOTAlOworCQkJCWJv
cmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZw
eDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4
cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4K
KwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4K
KwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJ
CTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5j
dGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworCQkJfQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7CisJCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVv
JylbMF07CisJCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRp
bmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJCQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJv
ZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4dCAy
LgorCQkJPHZpZGVvIGhlaWdodD0iMjcwIiB3aWR0aD0iNDgwIiBpZD0idmlkZW8iIGNvbnRyb2xz
PjwvdmlkZW8+CisJCQlzb21lIHRleHQgNC4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+
PC9kaXY+CisJCXNvbWUgdGV4dCA1LgorCQk8cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHBy
b3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0
byB2aWRlbyBsYXllcnMgaW5zaWRlIGl0LjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hh
ZG93LWJvcmRlci1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDhjMzNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
Z2lvbnMvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWwKQEAg
LTAsMCArMSw1MSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NT
IFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxl
Y3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0
bWwgeworCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250
ZW50IHsKKwkJCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzsKKwkJCQl3aWR0aDogMTUwcHg7CisJ
CQkJaGVpZ2h0OiAxMDBweDsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7CisJCQkJcGFk
ZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OworCQkJ
fQorCisJCQkjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgeworCQkJCS13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKKwkJCQl3aWR0aDog
MTAwcHg7CisJCQkJaGVpZ2h0OiA0MHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJ
CQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4
OworCQkJfQorCisJCQkjcmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKKwkJ
CQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4
IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6
IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFy
Z2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9k
eT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9ImNvbnRlbnQiPgorCQkJc29tZSB0ZXh0IDIu
CisJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+CisJCQkJc29tZSB0
ZXh0IDMuCisJCQk8L2Rpdj4KKwkJCXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKwkJPGRpdiBpZD0i
cmVnaW9uIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDUuCisJCTxwPk1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9yIGJveC1z
aGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuPC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9uLWFzLWxheWVyLWlu
LWFub3RoZXItZmxvd3RocmVhZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjNkNjUwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1
ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBz
aG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJ
PHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJ
CX0KKworCQkJLmNvbnRlbnQgeworCQkJCXdpZHRoOiAyNTBweDsKKwkJCQloZWlnaHQ6IDExMHB4
OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRw
eCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTY1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCSNy
ZWdpb24geworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlvdXRsaW5lOiBkb3Vi
bGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjog
MjdweCAxOHB4IDI5cHggMjBweDsKKwkJCX0KKworCQkJI291dHRlclJlZ2lvbiB7CisJCQkJYm9y
ZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJ
CQlwYWRkaW5nOiA3cHggOHB4IDlweCAxMHB4OworCQkJCW1hcmdpbjogOHB4IDlweCAxMHB4IDEx
cHg7CisJCQl9CisKKwkJCS5mb3JjZWRTdGFja2luZ0NvbnRleHQgeworCQkJCXBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKwkJCQl6LWluZGV4OiAxOworCQkJfQorCisJCQkuYm94U2hhZG93IHsKKwkJCQli
b3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0ib3V0dGVyUmVnaW9uIiBjbGFz
cz0iZm9yY2VkU3RhY2tpbmdDb250ZXh0IGJveFNoYWRvdyI+CisJCQk8ZGl2IGNsYXNzPSJvdXR0
ZXJGbG93IGNvbnRlbnQgYm94U2hhZG93Ij48L2Rpdj4KKwkJCTxkaXYgaWQ9InJlZ2lvbiIgY2xh
c3M9ImZvcmNlZFN0YWNraW5nQ29udGV4dCBib3hTaGFkb3ciPgorCQkJCTxkaXYgY2xhc3M9ImNv
bnRlbnQiPgorCQkJCQlzb21lIHRleHQgMi4KKwkJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9u
VG9CZUNvbXBvc2l0ZWQiIGNsYXNzPSJib3hTaGFkb3ciPgorCQkJCQkJc29tZSB0ZXh0IDMuCisJ
CQkJCTwvZGl2PgorCQkJCQlzb21lIHRleHQgNC4KKwkJCQk8L2Rpdj4KKwkJCTwvZGl2PgorCQkJ
PGRpdiBjbGFzcz0iY29udGVudCBib3hTaGFkb3ciPjwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0
ZXh0IDUuCisJCTxwPlJlbmRlclJlZ2lvbnMgbWF5IGJlIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJz
IGluc2lkZSBhbm90aGVyIGZsb3cgdGhyZWFkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93dGhyZWFkLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVy
LWZsb3d0aHJlYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzA1
ODUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy9y
ZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93dGhyZWFkLmh0bWwKQEAgLTAsMCArMSw4NiBA
QAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRo
ZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0
aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13
ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCS5vdXR0ZXJGbG93IHsKKwkJ
CQktd2Via2l0LWZsb3ctaW50bzogb3V0dGVyRmxvdzsKKwkJCX0KKworCQkJLmlubmVyRmxvdyB7
CisJCQkJLXdlYmtpdC1mbG93LWludG86IGlubmVyRmxvdzsKKwkJCX0KKworCQkJLmNvbnRlbnQg
eworCQkJCXdpZHRoOiAyNTBweDsKKwkJCQloZWlnaHQ6IDExMHB4OworCQkJCWJhY2tncm91bmQt
Y29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2lu
OiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9z
aXRlZCB7CisJCQkJd2lkdGg6IDEwMHB4OworCQkJCWhlaWdodDogNDBweDsKKwkJCQliYWNrZ3Jv
dW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKKwkJCQltYXJn
aW46IDVweCA2cHggN3B4IDhweDsKKwkJCX0KKworCQkJLnRyYW5zZm9ybWVkIHsKKwkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtNjVweCk7CisJCQl9
CisKKwkJCSNyZWdpb24geworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBpbm5lckZsb3c7CisJCQkJ
Ym9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsK
KwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiAyN3B4IDE4cHggMjlw
eCAyMHB4OworCQkJfQorCisJCQkjb3V0dGVyUmVnaW9uIHsKKwkJCQktd2Via2l0LWZsb3ctZnJv
bTogb3V0dGVyRmxvdzsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJb3V0bGlu
ZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6IDdweCA4cHggOXB4IDEwcHg7CisJCQkJ
bWFyZ2luOiA4cHggOXB4IDEwcHggMTFweDsKKwkJCX0KKworCQkJLmJveFNoYWRvdyB7CisJCQkJ
Ym94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisKKwkJPGRpdiBpZD0ib3V0dGVyUmVnaW9uIiBj
bGFzcz0iYm94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJvdXR0ZXJGbG93IGNvbnRl
bnQgYm94U2hhZG93Ij48L2Rpdj4KKworCQk8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJvdXR0ZXJG
bG93IGJveFNoYWRvdyI+PC9kaXY+CisKKwkJPGRpdiBjbGFzcz0iaW5uZXJGbG93IGNvbnRlbnQi
PgorCQkJc29tZSB0ZXh0IDIuCisJCQk8ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9z
aXRlZCIgY2xhc3M9ImJveFNoYWRvdyI+CisJCQkJc29tZSB0ZXh0IDMuCisJCQk8L2Rpdj4KKwkJ
CXNvbWUgdGV4dCA0LgorCQk8L2Rpdj4KKworCQk8ZGl2IGNsYXNzPSJvdXR0ZXJGbG93IGNvbnRl
bnQgYm94U2hhZG93Ij48L2Rpdj4KKworCQlzb21lIHRleHQgNS4KKworCQk8cD5SZW5kZXJSZWdp
b25zIG1heSBiZSBjb21wb3NpdGVkIFJlbmRlckxheWVycyBpbnNpZGUgYW5vdGhlciBmbG93IHRo
cmVhZC48L3A+CisKKwkJPHNjcmlwdD4KKwkJCWRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCQkJ
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIiku
Y2xhc3NOYW1lICs9ICIgdHJhbnNmb3JtZWQiOworCQk8L3NjcmlwdD4KKwk8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRl
by1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdp
b24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVl
YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90
cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcg
IzwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7CisJCQl9CisJCQkudHJhbnNwYXJl
bnQgeworCQkJCW9wYWNpdHk6IDAuNTsKKwkJCX0KKwkJCS5wb3NpdGlvbmVkIHsKKwkJCQlwb3Np
dGlvbjogcmVsYXRpdmU7CisJCQl9CisJCQkuY29udGVudCB7CisJCQkJd2hpdGUtc3BhY2U6IG5v
d3JhcDsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCXdpZHRoOjIwMHB4OworCQkJCWJvcmRlci1s
ZWZ0LXdpZHRoOiA1cHg7CisJCQkJYm9yZGVyLXRvcC13aWR0aDogMWVtOworCQkJCXBhZGRpbmct
bGVmdDogNCU7CisJCQkJcGFkZGluZy10b3A6IDNwdDsKKwkJCQltYXJnaW46IDIwcHg7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwZGVnKTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0
ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5k
ZXg6IDE7IC8qU3RhY2tpbmcgQ29udGV4dCwganVzdCBsaWtlIHRoZSByZWdpb24qLworCQkJfQor
CQkJKiB7CisJCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OworCQkJCXBhZGRpbmc6IDJweDsKKwkJ
CQltYXJnaW46IDNweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKwkJPHNjcmlwdCBzcmM9Ii4uLy4uL21l
ZGlhL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorCisJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKKwkJCQlp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworCQkJ
fQorCisJCQl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisJCQkJdmFyIHZpZGVvID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisJCQkJc2V0dXBWaWRlbyh2
aWRlbywgJy4uLy4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7CisJ
CQl9OworCQk8L3NjcmlwdD4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9InJlZ2lv
biI+CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250
ZW50PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJ0cmFuc3BhcmVudCBjb250ZW50Ij50cmFuc3BhcmVu
dCBjb250ZW50PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIGNvbnRlbnQiPnBvc2l0
aW9uZWQgY29udGVudDwvZGl2PgorCQkJPHZpZGVvIGNsYXNzPSJjb250ZW50IiBoZWlnaHQ9IjE1
MCIgd2lkdGg9IjIxMCIgaWQ9InZpZGVvIiBjb250cm9scz48L3ZpZGVvPgorCQkJPGRpdiBjbGFz
cz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KKwkJPC9kaXY+CisJPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0
aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVnaW9ucy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVn
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRhOTg3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3Jt
LXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sCkBAIC0wLDAg
KzEsNTYgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnICM8L3RpdGxlPgorCQk8c3R5
bGU+CisJCQkudHJhbnNmb3JtZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTVk
ZWcpIHJvdGF0ZVooMTVkZWcpOworCQkJfQorCQkJLnRyYW5zcGFyZW50IHsKKwkJCQlvcGFjaXR5
OiAwLjU7CisJCQl9CisJCQkucG9zaXRpb25lZCB7CisJCQkJcG9zaXRpb246IHJlbGF0aXZlOwor
CQkJfQorCQkJLmNvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOnRoZUZsb3c7CisJCQkJ
d2hpdGUtc3BhY2U6IG5vd3JhcDsKKwkJCX0KKwkJCS5yZWdpb24geworCQkJCS13ZWJraXQtZmxv
dy1mcm9tOnRoZUZsb3c7CisJCQkJd2lkdGg6MjAwcHg7CisJCQkJYm9yZGVyLWxlZnQtd2lkdGg6
IDVweDsKKwkJCQlib3JkZXItdG9wLXdpZHRoOiAxZW07CisJCQkJcGFkZGluZy1sZWZ0OiA0JTsK
KwkJCQlwYWRkaW5nLXRvcDogM3B0OworCQkJCW1hcmdpbjogMjBweDsKKwkJCX0KKwkJCSogewor
CQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKKwkJCQlwYWRkaW5nOiAycHg7CisJCQkJbWFyZ2lu
OiAzcHg7CisJCQl9CisJCTwvc3R5bGU+CisJCTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVk
aWEtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisJCTxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS9tZWRp
YS1maWxlLmpzIj48L3NjcmlwdD4KKworCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPgorCQkJZnVuY3Rpb24gdGVzdERvbmUoKSB7CisJCQkJaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKwkJCX0KKworCQkJ
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCQkJCXNldHVwVmlkZW8odmlkZW8sICcu
Li8uLi9tZWRpYS9jb250ZW50L2NvdW50aW5nJywgbnVsbCwgdGVzdERvbmUpOworCQkJfTsKKwkJ
PC9zY3JpcHQ+CisJPC9oZWFkPgorCTxib2R5PgorCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBj
b250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+CisJCTxkaXYgY2xhc3M9InRyYW5zcGFy
ZW50IGNvbnRlbnQiPnRyYW5zcGFyZW50IGNvbnRlbnQ8L2Rpdj4KKwkJPGRpdiBjbGFzcz0icG9z
aXRpb25lZCBjb250ZW50Ij5wb3NpdGlvbmVkIGNvbnRlbnQ8L2Rpdj4KKwkJPHZpZGVvIGNsYXNz
PSJjb250ZW50IiBoZWlnaHQ9IjE1MCIgd2lkdGg9IjIxMCIgaWQ9InZpZGVvIiBjb250cm9scz48
L3ZpZGVvPgorCQk8ZGl2IGNsYXNzPSJjb250ZW50Ij5ub3QgdHJhbnNmb3JtZWQgY29udGVudDwv
ZGl2PgorCQk8ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXllci1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1l
ZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTJlYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJh
bnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKwk8
aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9t
IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBs
YXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNt
b290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCXdpZHRoOiAxNTBweDsK
KwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlw
YWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJ
CQl9CisKKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOworCQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWln
aHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7CisJCQl9CisKKwkJCS5p
bm5lciB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogQ3lhbjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7
CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsgLypzbyB0aGUgZGl2IGlz
IGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KKwkJCQlib3gtc2hhZG93OiAycHgg
MnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRl
ci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsK
KwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAx
MHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEu
CisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRl
eHQgMi4KKwkJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCI+CisJCQkJCXNvbWUgdGV4dCAzLgor
CQkJCQk8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm1lZCBpbm5lciI+CisJCQkJCQlzb21lIHRleHQgNC4K
KwkJCQkJPC9kaXY+CisJCQkJCXNvbWUgdGV4dCA1LgorCQkJCTwvZGl2PgorCQkJCXNvbWUgdGV4
dCA2LgorCQkJPC9kaXY+CisJCTwvZGl2PgorCQlzb21lIHRleHQgNy4KKwkJPHA+UmVuZGVyaW5n
IGEgdHJhbnNmb3JtZWQgbGF5ZXIgaW5zaWRlIGFub3RoZXIgdHJhbnNmb3JtZWQgbGF5ZXIuPC9w
PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWlu
c2lkZS10cmFuc2Zvcm1lZC1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVn
aW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTU4NzcyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy90cmFuc2Zvcm1lZC1sYXllci1pbnNp
ZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRv
OiBmbG93OworCQkJCXdpZHRoOiAxNTBweDsKKwkJCQloZWlnaHQ6IDEwMHB4OworCQkJCWJhY2tn
cm91bmQtY29sb3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJ
bWFyZ2luOiAzcHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS50cmFuc2Zvcm1lZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwor
CQkJCXdpZHRoOiAxMDBweDsKKwkJCQloZWlnaHQ6IDQwcHg7CisJCQkJYmFja2dyb3VuZC1jb2xv
cjogTGltZTsKKwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHgg
NnB4IDdweCA4cHg7CisJCQl9CisKKwkJCS5pbm5lciB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjog
Q3lhbjsKKwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7
CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOworCQkJCWJvcmRlcjogZG91Ymxl
IDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKKwkJCQlvdXRs
aW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OworCQkJ
CW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJjb250ZW50Ij4KKwkJCXNvbWUgdGV4
dCAyLgorCQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQiPgorCQkJCXNvbWUgdGV4dCAzLgorCQkJ
CTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGlubmVyIj4KKwkJCQkJc29tZSB0ZXh0IDQuCisJCQkJ
PC9kaXY+CisJCQkJc29tZSB0ZXh0IDUuCisJCQk8L2Rpdj4KKwkJCXNvbWUgdGV4dCA2LgorCQk8
L2Rpdj4KKwkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKwkJc29tZSB0ZXh0IDcuCisJCTxwPlJl
bmRlcmluZyBhIHRyYW5zZm9ybWVkIGxheWVyIGluc2lkZSBhbm90aGVyIHRyYW5zZm9ybWVkIGxh
eWVyLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1y
ZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1l
eHBlY3RlZC5odG1sCmluZGV4IDk0NDg3MWYuLmQ5OTQyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9z
aXRpbmctZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLWV4cGVjdGVkLmh0bWwKQEAg
LTUsNyArNSw4IEBACiAgICAgLnJlZ2lvbnsKICAgICAgICAgaGVpZ2h0OjUwcHg7CiAgICAgICAg
IHdpZHRoOjUwcHg7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuCisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUz
ZCgxLCAxLCAxKTsvKiBGb3JjZSBhIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXIuICovCiAgICAgfQog
PC9zdHlsZT4KIDwvaGVhZD4KQEAgLTEzLDggKzE0LDcgQEAKIDxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDkwMCI+IFtDU1MgUmVn
aW9uc10gRW5hYmxlIGFjY2VsZXJhdGVkIGxheWVycyBvbiBlbGVtZW50cyBpbnNpZGUgYSBSZW5k
ZXJGbG93VGhyZWFkPC9hPi48L3A+CiA8cD5UZXN0IHRoYXQgYW4gZWxlbWVudCByZXF1aXJpbmcg
YSBjb21wb3NpdGVkIGxheWVyLCBjb2xsZWN0ZWQgaW4gYSBmbG93IHRocmVhZCwgaXMgZGlzcGxh
eWVkIGNvcnJlY3RseSBpbnNpZGUgYSByZWdpb24uPC9wPgogPHA+T24gc3VjY2VzcywgeW91IHNo
b3VsZCBub3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48L3A+Ci08ZGl2IGNsYXNzPSJyZWdp
b24iPgotPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWdpb24iPnJlZ2lvbjwvZGl2PgogPC9ib2R5Pgog
PC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3dl
YmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5n
Lmh0bWwKaW5kZXggNDU2ZTk5Mi4uNjNhZDM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVu
ZGVyZXItbGF5ZXItY29tcG9zaXRpbmcuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0OTAw
Ij4gW0NTUyBSZWdpb25zXSBFbmFibGUgYWNjZWxlcmF0ZWQgbGF5ZXJzIG9uIGVsZW1lbnRzIGlu
c2lkZSBhIFJlbmRlckZsb3dUaHJlYWQ8L2E+LjwvcD4KIDxwPlRlc3QgdGhhdCBhbiBlbGVtZW50
IHJlcXVpcmluZyBhIGNvbXBvc2l0ZWQgbGF5ZXIsIGNvbGxlY3RlZCBpbiBhIGZsb3cgdGhyZWFk
LCBpcyBkaXNwbGF5ZWQgY29ycmVjdGx5IGluc2lkZSBhIHJlZ2lvbi48L3A+CiA8cD5PbiBzdWNj
ZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KLTxkaXYg
aWQ9ImRpdjEiIGNsYXNzPSJlbGVtZW50U2l6ZSI+PC9kaXY+Cis8ZGl2IGlkPSJkaXYxIiBjbGFz
cz0iZWxlbWVudFNpemUiPnJlZ2lvbjwvZGl2PgogPGRpdiBpZD0icmVnaW9uMSIgY2xhc3M9ImVs
ZW1lbnRTaXplIj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVjZjc2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNjQgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdp
b25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
dW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgorCQk8c3R5bGU+CisJCQlodG1sIHsK
KwkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOworCQkJfQorCisJCQkjY29udGVudCB7
CisJCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OworCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4
IDVweDsKKwkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKKwkJCX0KKworCQkJLmNhdXNlc1Ro
ZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
WigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsK
KwkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7CisJCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4
cHg7CisJCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7CisJCQl9CisKKwkJCS5zZWNvbmQgewor
CQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4
KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47CisJCQkJbWFyZ2luLXRvcDotMWVtOworCQkJ
fQorCisJCQkuejEsIC56MiB7CisJCQkJcG9zaXRpb246IHJlbGF0aXZlOworCQkJfQorCisJCQku
ejEgeworCQkJCXotaW5kZXg6IDE7CisJCQl9CisKKwkJCS56MiB7CisJCQkJei1pbmRleDogMjsK
KwkJCX0KKworCQkJI3JlZ2lvbiB7CisJCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNr
OworCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKKwkJCQlib3JkZXItd2lkdGg6IDNweCA0
cHggNXB4IDZweDsKKwkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7CisJCQkJcGFkZGluZzog
NnB4IDdweCA4cHggOXB4OworCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKKwkJCX0KKwkJ
PC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCXNvbWUgdGV4dCAxLgorCQk8ZGl2IGlkPSJy
ZWdpb24iPgorCQkJPGRpdiBpZD0iY29udGVudCI+CisJCQkJc29tZSB0ZXh0IDIuCisJCQkJPGRp
diBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwv
ZGl2PgorCQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29u
ZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+CisJCQkJc29tZSB0ZXh0IDUuCisJCQk8L2Rpdj4KKwkJ
PC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVj
dGVkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4LXVwZGF0
ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVnaW9ucy96LWluZGV4
LXVwZGF0ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhmZjkxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdp
b25zL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+
CisJPGhlYWQ+CisJCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMg
ZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9u
cycgbGF5ZXJzLjwvdGl0bGU+CisJCTxzdHlsZT4KKwkJCWh0bWwgeworCQkJCS13ZWJraXQtZm9u
dC1zbW9vdGhpbmc6IG5vbmU7CisJCQl9CisKKwkJCSNjb250ZW50IHsKKwkJCQliYWNrZ3JvdW5k
LWNvbG9yOiBZZWxsb3c7CisJCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4OworCQkJCW1hcmdp
bjogM3B4IDRweCA1cHggNnB4OworCQkJfQorCisJCQkuY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBv
c2l0ZWQgeworCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xh
dGVYKC0zNXB4KTsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOworCQkJCXBhZGRpbmc6IDRw
eCA1cHggNnB4IDdweDsKKwkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKKwkJCQlib3JkZXI6
IHNvbGlkIDFweCBCbGFjazsKKwkJCX0KKworCQkJLnNlY29uZCB7CisJCQkJLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTI1cHgpOworCQkJCWJhY2tncm91
bmQtY29sb3I6Q3lhbjsKKwkJCQltYXJnaW4tdG9wOi0xZW07CisJCQl9CisKKwkJCS56MSwgLnoy
IHsKKwkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl9CisKKwkJCS56MSB7CisJCQkJei1pbmRl
eDogMTsKKwkJCX0KKworCQkJLnoyIHsKKwkJCQl6LWluZGV4OiAyOworCQkJfQorCisJCQkjcmVn
aW9uIHsKKwkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxhY2s7CisJCQkJYm9yZGVyOiBk
b3VibGUgM3B4IEdyZWVuOworCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OworCQkJ
CW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKKwkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7
CisJCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVh
ZD4KKwk8Ym9keT4KKwkJc29tZSB0ZXh0IDEuCisJCTxkaXYgaWQ9InJlZ2lvbiI+CisJCQk8ZGl2
IGlkPSJjb250ZW50Ij4KKwkJCQlzb21lIHRleHQgMi4KKwkJCQk8ZGl2IGNsYXNzPSJjYXVzZXNU
aGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MiI+c29tZSB0ZXh0IDMuPC9kaXY+CisJCQkJPGRpdiBj
bGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoxIj5zb21lIHRleHQg
NC48L2Rpdj4KKwkJCQlzb21lIHRleHQgNS4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwkJc29tZSB0
ZXh0IDYuCisJCTxwPnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuPC9wPgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXgtdXBkYXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM4MzVlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC11cGRhdGUuaHRtbApAQCAtMCwwICsx
LDcwIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9u
c10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVu
ZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJaHRtbCB7CisJ
CQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2NvbnRlbnQgewor
CQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxv
dzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAzcHggNHB4IDVw
eCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7CisJCQkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwor
CQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4
OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29saWQgMXB4IEJs
YWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpDeWFu
OworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgeworCQkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAxOworCQkJfQor
CisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24geworCQkJCS13
ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFj
azsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdpZHRoOiAzcHgg
NHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJCXBhZGRpbmc6
IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7CisJCQl9CisJ
CTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJPGRpdiBpZD0i
Y29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lv
blRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImNh
dXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0IDQuPC9kaXY+
CisJCQlzb21lIHRleHQgNS4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CisJ
CXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwvcD4K
KwkJPHNjcmlwdD4KKwkJCWRvY3VtZW50Lm9mZnNldFRvcDsKKwkJCWRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoIi5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCIpLmNsYXNzTmFtZSA9ICJjYXVz
ZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB6MiI7CisJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCIuc2Vjb25kIikuY2xhc3NOYW1lID0gImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNl
Y29uZCB6MSI7CisJCTwvc2NyaXB0PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25z
L3otaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZ2lvbnMvei1pbmRleC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYzhiNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWdpb25zL3otaW5kZXguaHRtbApA
QCAtMCwwICsxLDY1IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtD
U1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29s
bGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KKwkJPHN0eWxlPgorCQkJ
aHRtbCB7CisJCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKKwkJCX0KKworCQkJI2Nv
bnRlbnQgeworCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OworCQkJCWJhY2tncm91bmQtY29s
b3I6IFllbGxvdzsKKwkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7CisJCQkJbWFyZ2luOiAz
cHggNHB4IDVweCA2cHg7CisJCQl9CisKKwkJCS5jYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRl
ZCB7CisJCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgo
LTM1cHgpOworCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7CisJCQkJcGFkZGluZzogNHB4IDVw
eCA2cHggN3B4OworCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OworCQkJCWJvcmRlcjogc29s
aWQgMXB4IEJsYWNrOworCQkJfQorCisJCQkuc2Vjb25kIHsKKwkJCQktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7CisJCQkJYmFja2dyb3VuZC1j
b2xvcjpDeWFuOworCQkJCW1hcmdpbi10b3A6LTFlbTsKKwkJCX0KKworCQkJLnoxLCAuejIgewor
CQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCX0KKworCQkJLnoxIHsKKwkJCQl6LWluZGV4OiAx
OworCQkJfQorCisJCQkuejIgeworCQkJCXotaW5kZXg6IDI7CisJCQl9CisKKwkJCSNyZWdpb24g
eworCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OworCQkJCWJveC1zaGFkb3c6IDJweCAycHgg
MTVweCBCbGFjazsKKwkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47CisJCQkJYm9yZGVyLXdp
ZHRoOiAzcHggNHB4IDVweCA2cHg7CisJCQkJb3V0bGluZTogZG91YmxlIDVweCBCbHVlOworCQkJ
CXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKKwkJCQltYXJnaW46IDdweCA4cHggOXB4IDEwcHg7
CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQlzb21lIHRleHQgMS4KKwkJ
PGRpdiBpZD0iY29udGVudCI+CisJCQlzb21lIHRleHQgMi4KKwkJCTxkaXYgY2xhc3M9ImNhdXNl
c1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0
IDQuPC9kaXY+CisJCQlzb21lIHRleHQgNS4KKwkJPC9kaXY+CisJCTxkaXYgaWQ9InJlZ2lvbiI+
PC9kaXY+CisJCXNvbWUgdGV4dCA2LgorCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVj
dGVkLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1z
dGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9t
aXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci1leHBlY3RlZC5odG1sCmluZGV4IDBjMTA3
OWIuLmIwMmU2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQt
cG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9yZGVyLWV4cGVjdGVk
Lmh0bWwKQEAgLTEsOCArMSw4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxodG1sPgotPGRpdiBzdHls
ZT0iaGVpZ2h0OjIwMHB4O2JvcmRlcjo1cHggc29saWQgYmxhY2s7cG9zaXRpb246cmVsYXRpdmU7
d2lkdGg6MjEwcHgiPgotPGRpdiBzdHlsZT0id2lkdGg6MjEwcHg7aGVpZ2h0OjIwMHB4O2JhY2tn
cm91bmQtY29sb3I6cHVycGxlOyI+MzwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1
dGU7YmFja2dyb3VuZC1jb2xvcjpnb2xkO2xlZnQ6NTVweDt0b3A6MHB4O2hlaWdodDoyMDBweDt3
aWR0aDoxMDBweCI+MjwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7YmFja2dy
b3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O2xlZnQ6MDtib3R0
b206MCI+MTwvZGl2PgotPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1j
b2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7bGVmdDoxMTBweDt0b3A6MDtoZWlnaHQ6MTAwcHgi
PjwvZGl2PgorPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4O3dpZHRoOjIxMHB4O3Bvc2l0aW9uOnJl
bGF0aXZlO2JvcmRlcjo1cHggc29saWQgYmxhY2siPgorCTxkaXYgc3R5bGU9IndpZHRoOjIxMHB4
O2hlaWdodDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KKwk8ZGl2IHN0
eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo1NXB4O3Rv
cDowcHg7aGVpZ2h0OjIwMHB4O3dpZHRoOjEwMHB4Ij4yPC9kaXY+CisJPGRpdiBzdHlsZT0icG9z
aXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjpsaWdodGJsdWU7d2lkdGg6MTAwcHg7aGVp
Z2h0OjEwMHB4O2xlZnQ6MDtib3R0b206MCI+MTwvZGl2PgorCTxkaXYgc3R5bGU9InBvc2l0aW9u
OmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6bGlnaHRibHVlO3dpZHRoOjEwMHB4O2xlZnQ6MTEw
cHg7dG9wOjA7aGVpZ2h0OjEwMHB4Ij48L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1v
cmRlci5odG1sCmluZGV4IGY3NmU0OTAuLmRkN2NiNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbXVsdGljb2wvbWl4ZWQtcG9zaXRpb25pbmctc3RhY2tpbmctb3JkZXIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLXBvc2l0aW9uaW5nLXN0YWNraW5nLW9y
ZGVyLmh0bWwKQEAgLTYsMTYgKzYsMTQgQEAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJh
c2VkQ29sdW1uc0VuYWJsZWQodHJ1ZSkKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2
IHN0eWxlPSJ3aWR0aDoyMTBweDsgaGVpZ2h0OjIwMHB4OyBib3JkZXI6NXB4IHNvbGlkIGJsYWNr
OyAtbW96LWNvbHVtbi13aWR0aDoxMDBweDsgLW1vei1jb2x1bW4tZ2FwOjEwcHg7IC13ZWJraXQt
Y29sdW1uLXdpZHRoOjEwMHB4OyAtd2Via2l0LWNvbHVtbi1nYXA6MTBweDsgLXdlYmtpdC1jb2x1
bW4tZmlsbDphdXRvOyBjb2x1bW4td2lkdGg6MTAwcHg7IGNvbHVtbi1nYXA6MTBweDsgY29sdW1u
LWZpbGw6YXV0bzsiPgotCi08ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiPgotPGRpdiBz
dHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowOyBoZWlnaHQ6NDAwcHg7IHdpZHRo
OjEwMHB4Ij4KLTxkaXYgc3R5bGU9IndpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5k
LWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4KLTxkaXYgc3R5bGU9ImhlaWdodDoyMDBweCI+PC9kaXY+
Ci08ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpw
dXJwbGU7Ij4zPC9kaXY+Ci08L2Rpdj4KLTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB6
LWluZGV4OjE7IGJhY2tncm91bmQtY29sb3I6bGlnaHRibHVlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6
MjAwcHg7IHRvcDoxMDBweCI+MTwvZGl2PgotCi08ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDti
YWNrZ3JvdW5kLWNvbG9yOmdvbGQ7bGVmdDo2OHB4O3RvcDoxM3B4O2hlaWdodDoyMDBweDt3aWR0
aDoxMDBweCI+MjwvZGl2PgotPC9kaXY+Cis8ZGl2IHN0eWxlPSItbW96LWNvbHVtbi13aWR0aDox
MDBweDsgLW1vei1jb2x1bW4tZ2FwOjEwcHg7IHdpZHRoOjIxMHB4OyBoZWlnaHQ6MjAwcHg7Ym9y
ZGVyOjVweCBzb2xpZCBibGFjazsgLXdlYmtpdC1jb2x1bW4td2lkdGg6MTAwcHg7IC13ZWJraXQt
Y29sdW1uLWdhcDoxMHB4OyAtd2Via2l0LWNvbHVtbi1maWxsOmF1dG87IGNvbHVtbi13aWR0aDox
MDBweDsgY29sdW1uLWdhcDoxMHB4OyBjb2x1bW4tZmlsbDphdXRvOyI+CisJPGRpdiBzdHlsZT0i
cG9zaXRpb246cmVsYXRpdmU7Ij4KKwkJPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9w
OjA7bGVmdDowOyBoZWlnaHQ6NDAwcHg7IHdpZHRoOjEwMHB4Ij4KKwkJCTxkaXYgc3R5bGU9Indp
ZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnB1cnBsZTsiPjM8L2Rpdj4K
KwkJCTxkaXYgc3R5bGU9ImhlaWdodDoyMDBweCI+PC9kaXY+CisJCQk8ZGl2IHN0eWxlPSJ3aWR0
aDoxMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpwdXJwbGU7Ij4zPC9kaXY+CisJ
CTwvZGl2PgorCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBiYWNr
Z3JvdW5kLWNvbG9yOmxpZ2h0Ymx1ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjIwMHB4OyB0b3A6MTAw
cHgiPjE8L2Rpdj4KKwkJPGRpdiBzdHlsZT0icG9zaXRpb246Zml4ZWQ7YmFja2dyb3VuZC1jb2xv
cjpnb2xkO2xlZnQ6NjhweDt0b3A6MTNweDtoZWlnaHQ6MjAwcHg7d2lkdGg6MTAwcHgiPjI8L2Rp
dj4KKwk8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFpbnRpbmctY29tcG9zaXRlZC1lbGVtZW50LWV4
cGVjdGVkLmh0bWwKaW5kZXggZTM5ZmU2Yy4uNDFkNTU1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3NpdGVkLWVsZW1lbnQtZXhwZWN0
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBhaW50aW5nLWNv
bXBvc2l0ZWQtZWxlbWVudC1leHBlY3RlZC5odG1sCkBAIC0xMiwxMCArMTIsMTMgQEAKICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6
IDE7IC8qY3JlYXRlIFN0YWNraW5nIENvbnRleHQqLwogfQorI3JlZ2lvbjEgeworICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7IC8qYWN0aXZhdGUgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmcqLworfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgotICAgIDxkaXYgaWQ9
InJlZ2lvbjEiPjwvZGl2PjxiciAvPgorICAgIDxkaXYgaWQ9InJlZ2lvbjEiPnJlZ2lvbjwvZGl2
PjxiciAvPgogICAgIDxkaXYgaWQ9InJlZ2lvbjIiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21w
b3NpdGVkLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZWdpb24tcGFp
bnRpbmctY29tcG9zaXRlZC1lbGVtZW50Lmh0bWwKaW5kZXggMWRhMWUyYy4uMzg1ODQ0YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlZ2lvbi1wYWludGluZy1jb21wb3Np
dGVkLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVnaW9uLXBh
aW50aW5nLWNvbXBvc2l0ZWQtZWxlbWVudC5odG1sCkBAIC00MCw3ICs0MCw3IEBACiAgICAgPCEt
LSBUZXN0aW5nIHRoYXQgdGhlIFJlbmRlck9iamVjdCBpcyBtYXJrZWQgYXMgcGFydCBvZiB0aGUg
UmVuZGVyRmxvd1RocmVhZCBiZWZvcmUgaXQgYXBwbGllcyB0aGUgZmlyc3Qgc3R5bGUuCiAgICAg
ICAgIFRoZSB0ZXN0IHNob3VsZCBwYWludCB0d28gZ3JlZW4gcmVjdGFuZ2xlcy4gVGhlcmUgc2hv
dWxkIGJlIG5vIHJlZC4gLS0+CiAgICAgPGRpdiBpZD0iY29udGVudCI+Ci0gICAgICAgIDxkaXYg
aWQ9InRhcmdldCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCI+cmVnaW9uPC9kaXY+
CiAgICAgPC9kaXY+CiAgICAgPGRpdiBpZD0icmVnaW9uMSI+PC9kaXY+PGJyIC8+CiAgICAgPGRp
diBpZD0icmVnaW9uMiI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjY0ZGJjOS4uNzE5Yzg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIzLDcgKzMyMyw3IEBAIHdl
YmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGNvbXBvc2l0aW5nL292ZXJsYXAtYmxlbmRpbmcv
Y2hpbGRyZW4tb3BhY2l0eS1odWdlCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBjb21w
b3NpdGluZy9vdmVybGFwLWJsZW5kaW5nL2NoaWxkcmVuLW9wYWNpdHktbm8tb3ZlcmxhcC5odG1s
ICBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVnIF0gY3Nz
My9maWx0ZXJzL2N1c3RvbS9lZmZlY3QtY3VzdG9tLXRyYW5zZm9ybS1wYXJhbWV0ZXJzLmh0bWwg
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTE4OTI1IFsgRGVidWcgXSBmYXN0
L2xheWVycy9uby1jbGlwcGluZy1vdmVyZmxvdy1oaWRkZW4tYWRkZWQtYWZ0ZXItdHJhbnNpdGlv
bi5odG1sICBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExODkyNSBbIERlYnVn
IF0gZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvbXVsdGljb2wv
bWl4ZWQtb3BhY2l0eS1maXhlZC10ZXN0Lmh0bWwgIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0K
IHdlYmtpdC5vcmcvYi8xMTg5MjUgWyBEZWJ1ZyBdIGZhc3QvcmVnaW9ucy9maXhlZC1wb3MtZWxl
bS1pbi1yZWdpb24uaHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTg5
MjUgWyBEZWJ1ZyBdIHN2Zy9yZXBhaW50L2J1ZmZlcmVkLXJlbmRlcmluZy1zdGF0aWMtaW1hZ2Uu
aHRtbCAgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQxZmRmNGYuLjVjNTBm
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMTMtMTAtMTggIE1paGFpIE1hZXJl
YW4gIDxtbWFlcmVhbkBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBUaGUgbGF5
ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJl
Z2lvbnMnIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgQWxleGFuZHJ1IENoaWN1
bGl0YSBhdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0yMDM4NzIm
YWN0aW9uPXJldmlldworCisgICAgICAgIFRoZSBjb21wb3NpdGVkIGxheWVycyBpbnNpZGUgdGhl
IG5hbWVkIGZsb3cgdGhyZWFkcyBhcmUgY29sbGVjdGVkIGFzIHBhcnQgb2YgdGhlIHJlZ2lvbnMg
KGFzIGNoaWxkcmVuIG9mIHRoZQorICAgICAgICBHcmFwaGljc0xheWVyIG9mIHRoZSBsYXllciB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSByZWdpb24gKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBw
YXJlbnQgcmVuZGVyZXIgb2YKKyAgICAgICAgUmVuZGVyTmFtZUZsb3dGcmFnbWVudCkpLgorICAg
ICAgICBXaGVuIGEgcmVnaW9uIGRpc3BsYXlzIGEgbGF5ZXIgdGhhdCBuZWVkcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyB3ZSBhY3RpdmF0ZSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZm9y
CisgICAgICAgIHRoYXQgcmVnaW9uIHRvbyAoaW5zaWRlIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Y29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGhhcyBsYW5kZWQgYmVmb3JlIChhcyBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xNTY0NTEpLCBidXQgd2FzIHJldmVydGVkIGJlY2F1c2UKKyAgICAgICAgZmFzdC9tdWx0aWNv
bC9taXhlZC1wb3NpdGlvbmluZy1zdGFja2luZy1vcmRlci5odG1sIGZhaWxlZC4gVGhlIGZpeCBp
cyBpbnNpZGUgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5CZUNvbXBvc2l0ZWQKKyAgICAgICAg
dGhhdCBvbmx5IGVuYWJsZXMgY29tcG9zaXRpbmcgZm9yIGxheWVycyBpbnNpZGUgZmxvdyB0aHJl
YWRzIHRoYXQgY29sbGVjdCB0aGUgZ3JhcGhpY3MgbGF5ZXJzIHVuZGVyIHRoZSByZWdpb25zLgor
CisgICAgICAgIEFub3RoZXIgY2hhbmdlIGZyb20gY2hhbmdlc2V0ICMxNTY0NTEgaXMgdGhhdCBu
b3cgdGhlIHJlZ2lvbiByZW5kZXJlcnMgYXJlIGNyZWF0ZWQgYXMgYW5vbnltb3VzIHJlbmRlcmVy
cyB1bmRlcgorICAgICAgICB0aGUgZWxlbWVudCB0aGF0IGhhcyB0aGUgZmxvdy1mcm9tIHByb3Bl
cnR5LiBXaGVuIGEgY29tcG9zaXRlZCBsYXllciBpcyBuZWVkZWQgZm9yIHRoZSByZWdpb24sIGl0
IHNpdHMgaW4gaXQncworICAgICAgICBwYXJlbnQgcmVuZGVyZXIsIG5vdCBpbiB0aGUgcmVnaW9u
IHJlbmRlcmVyIChSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCkuCisKKyAgICAgICAgVGVzdHM6IGNv
bXBvc2l0aW5nL3JlZ2lvbnMvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24uaHRtbAorICAg
ICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5z
Zm9ybWVkLWNoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvbW92
ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5odG1sCisgICAgICAgICAgICAgICBj
b21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9w
cm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbAorICAgICAgICAg
ICAgICAgY29tcG9zaXRpbmcvcmVnaW9ucy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1mbG93
dGhyZWFkLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvdHJhbnNmb3Jt
LXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFu
c2Zvcm1lZC1sYXllci5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9yZWdpb25zL3ot
aW5kZXgtdXBkYXRlLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL3JlZ2lvbnMvei1p
bmRleC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZVJlbmRlckZs
b3dUaHJlYWRMYXllcnNJZk5lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6cHJvcGFnYXRlU3R5bGVU
b0Fub255bW91c0NoaWxkcmVuKTogTm90IGZvciBSZW5kZXJGbG93VGhyZWFkcywgYXMgdGhleSBh
cmUgdXBkYXRlZAorICAgICAgICB0aHJvdWdoIHRoZSBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5n
ZSBmdW5jdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOiBXaGVuIHRoZSBsYXlv
dXQgb2YgdGhlIGZsb3cgdGhyZWFkIGlzIG92ZXIgKGluY2x1ZGluZyB0aGUgMiBwaGFzZSBsYXlv
dXQpLAorICAgICAgICB3ZSB1cGRhdGUgYWxsIHRoZSBtYXBwaW5ncyBiZXR3ZWVuIHRoZSBsYXll
cnMgaW5zaWRlIHRoZSBmbG93IHRocmVhZCBhbmQgdGhlIHJlZ2lvbnMgd2hlcmUgdGhvc2UgbGF5
ZXJzIHdpbGwgYmUKKyAgICAgICAgcGFpbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCk6IFdoZXRoZXIgYW55IG9m
IHRoZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpnZXRMYXllckxpc3RGb3JSZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0
ZWRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjb2xsZWN0c0dy
YXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncyk6IFRyaWdnZXJzIGFuIHVwZGF0ZSBv
ZiB0aGUgbGF5ZXJzIGlmIGEgbGF5ZXIgaGFzIG1vdmVkCisgICAgICAgIGZyb20gYSByZWdpb24g
dG8gYW5vdGhlciBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjp1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjpw
dXNoUmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5
TWFwLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpwYWludExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OmVuY2xvc2luZ0Zsb3dUaHJlYWRBbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0TGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMpOiBXaGVuIHdl
IGNhbGN1bGF0ZSB0aGUgYm91bmRzIG9mIHRoZSBSZW5kZXJWaWV3LCB3ZSBpZ25vcmUgdGhvc2UK
KyAgICAgICAgZmxvdyB0aHJlYWRzIHRoYXQgY29sbGVjdCB0aGUgZ3JhcGhpY3MgbGF5ZXJzIHVu
ZGVyIHRoZSByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Wk9y
ZGVyTGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxv
d0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9zaXRlZEJvdW5kcyk6IE5vdCBpZiBpdCdzIGEg
ZmxvdyB0aHJlYWQgdGhhdCBjb2xsZWN0cyB0aGUgZ3JhcGhpY3MKKyAgICAgICAgbGF5ZXJzIHVu
ZGVyIHRoZSByZWdpb25zCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6IE5vdyBhZGp1c3RzIHRoZSBhbmNlc3RvckNvbXBv
c2l0aW5nQm91bmRzIGZvciB0aGUgRmxvd1RocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6YWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJl
YWQpOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMKKyAgICAgICAgaXRzIGJv
cmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93cyB0byBsYXllcnMgaW5zaWRl
IGl0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjppc1NpbXBsZUNvbnRh
aW5lckNvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKTogTm93IGNhbGxzIGNvbXB1dGVSZWdpb25Db21wb3NpdGluZ1JlcXVp
cmVtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKTogRG8gbm90IGl0
ZXJhdGUgdGhlIFJlbmRlckZsb3dUaHJlYWQgZGlyZWN0bHkgaWYKKyAgICAgICAgd2UgYXJlIGdv
aW5nIHRvIGNvbGxlY3QgdGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIGFzIHBhcnQgb2YgcmVnaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZFJlZ2lvbkNv
bXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y2FuQmVDb21wb3NpdGVkKTogQ1NTIFJlZ2lvbnMgZmxvdyB0aHJlYWRzIGRvIG5vdCBu
ZWVkIHRvIGJlIGNvbXBvc2l0ZWQgYXMgd2UKKyAgICAgICAgdXNlIGNvbXBvc2l0ZWQgUmVuZGVy
UmVnaW9ucyB0byByZW5kZXIgdGhlIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlckZsb3dUaHJlYWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JJbmRpcmVjdFJlYXNvbik6IElmIGl0J3MgYSBjb250YWluZXIgb2YgYSBjc3MgcmVn
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmFkanVzdFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFk
UG9ydGlvblJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OmxheWVyT3duZXIpOiBXaGVuIHRo
ZSBjb250ZW50IGluc2lkZSB0aGUgcmVnaW9uIHJlcXVpcmVzIHRoZSByZWdpb24gdG8gaGF2ZSBh
CisgICAgICAgIGxheWVyLCB0aGUgbGF5ZXIgd2lsbCBiZSBjcmVhdGVkIG9uIHRoZSByZWdpb24n
cyBwYXJlbnQgcmVuZGVyZXIgaW5zdGVhZC4gVGhpcyBtZXRob2QgcmV0dXJucyB0aGF0IHJlbmRl
cmVyCisgICAgICAgIGhvbGRpbmcgdGhlIGxheWVyLiBUaGUgcmV0dXJuIHZhbHVlIG1heSBiZSBu
dWxsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVy
ZXJGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cHJl
dmlvdXNSZW5kZXJlckZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
VGhyZWFkOjphZGRGbG93Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRG
bG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6IG1fZmxvd1RocmVhZENoaWxkTGlz
dCBpcyBub3cgYWxsb2NhdGVkIHRocm91Z2ggYW4gT3duUHRyIHRvIGtlZXAgdGhlIHJlbmRlcgor
ICAgICAgICBhcmVuYSB1bmRlciB0aGUgc2l6ZSBsaW1pdC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6YWRqdXN0
UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJSZWdpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OndyaXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9u
cworCiAyMDEzLTEwLTE5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
TW92ZSBtX2xpbmVCb3hlcyBmcm9tIFJlbmRlckJsb2NrIHRvIFJlbmRlckJsb2NrRmxvdyAoUGFy
dCA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxl
ci5jcHAKaW5kZXggMWEzZjdiYS4uNWIyYjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgdm9p
ZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lmTmVl
ZGVkKCkKICAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJldmVyc2Ugb3JkZXIgYmVjYXVz
ZSBSZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBSZW5kZXJMYXllcnMgZm9yIHRoZSBmb2xsb3dp
bmcgZmxvdyB0aHJlYWRzLgogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6cmV2
ZXJzZV9pdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5yYmVnaW4o
KTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPnJlbmQoKTsgKytpdGVyKSB7
CiAgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0ZXI7Ci0g
ICAgICAgIGZsb3dSZW5kZXJlci0+dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQo
KTsKKyAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJ
Zk5lZWRlZCgpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IDExODlhYmQuLjQ2ZTdkYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc1NSw2ICs3NTUsMTAgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hpbGRyZW4oU3R5bGVQcm9w
YWdhdGlvblR5cGUgcHJvcGEKICAgICAgICAgICAgIGNvbnRpbnVlOwogI2VuZGlmCiAKKyAgICAg
ICAgLy8gUmVuZGVyRmxvd1RocmVhZHMgYXJlIHVwZGF0ZWQgdGhyb3VnaCB0aGUgUmVuZGVyVmll
dzo6c3R5bGVEaWRDaGFuZ2UgZnVuY3Rpb24uCisgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJG
bG93VGhyZWFkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBhdXRvIG5ld1N0
eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUo
KSwgY2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSk7CiAgICAgICAgIGlmIChzdHlsZSgpLT5zcGVj
aWZpZXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+c3BlY2lm
aWVzQ29sdW1ucygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuY3BwCmluZGV4IGRiNTM5ZTkuLjE1YTRkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0yMzUsOSArMjM2LDEwIEBAIHZvaWQgUmVuZGVyRmxv
d1RocmVhZDo6bGF5b3V0KCkKICAgICAvLyBOb3RlIHRoYXQgdGhlcmUncyBubyBuZWVkIHRvIGRv
IHNvIGZvciB0aGUgaW5saW5lIG11bHRpLWNvbHVtbiBhcyB3ZSBhcmUgbm90IG1vdmluZyBsYXll
cnMgaW50byBkaWZmZXJlbnQKICAgICAvLyBjb250YWluZXJzLCBidXQganVzdCBhZGp1c3Rpbmcg
dGhlIHBvc2l0aW9uIG9mIHRoZSBSZW5kZXJMYXllckJhY2tpbmcuCiAgICAgaWYgKCFtX25lZWRz
VHdvUGhhc2VzTGF5b3V0KSB7Ci0gICAgICAgIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncygp
OwotICAgICAgICAvLyBGSVhNRTogSWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9u
ZSByZWdpb24gdG8gYW5vdGhlciwgd2Ugc2hvdWxkIHRyaWdnZXIKKyAgICAgICAgLy8gSWYgd2Ug
aGF2ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2UgdHJp
Z2dlcgogICAgICAgICAvLyBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgaW4gaGVyZSB0byBt
YWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9ucyB3aWxsIGNvbGxlY3QgdGhlIHJpZ2h0IGxheWVycy4K
KyAgICAgICAgaWYgKHVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpKQorICAgICAgICAg
ICAgbGF5ZXIoKS0+Y29tcG9zaXRvcigpLnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQo
KTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjQ5LDM3ICsyNTEsNzMgQEAgdm9pZCBSZW5kZXJGbG93
VGhyZWFkOjpsYXlvdXQoKQogfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
UmVuZGVyUmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIo
UmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIpCitib29sIFJlbmRlckZsb3dUaHJlYWQ6Omhhc0NvbXBv
c2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0CiB7Ci0gICAgTGF5b3V0UG9pbnQgbGVmdFRv
cExvY2F0aW9uID0gY2hpbGRMYXllci0+cmVuZGVyQm94KCkgPyBjaGlsZExheWVyLT5yZW5kZXJC
b3goKS0+ZmxpcEZvcldyaXRpbmdNb2RlKExheW91dFBvaW50KCkpIDogTGF5b3V0UG9pbnQoKTsK
LSAgICBMYXlvdXRQb2ludCBmbG93VGhyZWFkT2Zmc2V0ID0gZmxvb3JlZExheW91dFBvaW50KGNo
aWxkTGF5ZXItPnJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5lclBvaW50KGxlZnRUb3BMb2NhdGlv
biwgdGhpcywgQXBwbHlDb250YWluZXJGbGlwKSk7Ci0gICAgcmV0dXJuIHJlZ2lvbkF0QmxvY2tP
ZmZzZXQoMCwgZmxpcEZvcldyaXRpbmdNb2RlKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBm
bG93VGhyZWFkT2Zmc2V0LnkoKSA6IGZsb3dUaHJlYWRPZmZzZXQueCgpKSwgdHJ1ZSwgRGlzYWxs
b3dSZWdpb25BdXRvR2VuZXJhdGlvbik7CisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25z
dF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25M
aXN0LmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGlmIChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBs
YXllck93bmVyID0gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgqaXRlciktPmxheWVyT3duZXIo
KSkKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5oYXNMYXllcigpICYmIGxheWVyT3duZXIt
PmxheWVyKCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitjb25zdCBSZW5kZXJMYXllckxp
c3QqIFJlbmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCogcmVnaW9uKQoreworICAgIGlmICghbV9yZWdpb25Ub0xheWVyTGlzdE1hcCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZO
ZWVkZWQoKTsKKyAgICBSZWdpb25Ub0xheWVyTGlzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0
b3IgPSBtX3JlZ2lvblRvTGF5ZXJMaXN0TWFwLT5maW5kKHJlZ2lvbik7CisgICAgcmV0dXJuIGl0
ZXJhdG9yID09IG1fcmVnaW9uVG9MYXllckxpc3RNYXAtPmVuZCgpID8gMCA6ICZpdGVyYXRvci0+
dmFsdWU7Cit9CisKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBSZW5kZXJGbG93VGhyZWFkOjpy
ZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGNoaWxkTGF5ZXIpCit7CisgICAg
aWYgKGNoaWxkTGF5ZXIucmVuZGVyQm94KCkpIHsKKyAgICAgICAgUmVuZGVyUmVnaW9uKiBzdGFy
dFJlZ2lvbiA9IDA7CisgICAgICAgIFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uID0gMDsKKyAgICAg
ICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goY2hpbGRMYXllci5yZW5kZXJCb3goKSwgc3RhcnRSZWdp
b24sIGVuZFJlZ2lvbik7CisgICAgICAgIC8vIFRoZSB2aWRlbyB0YWcgaXMgc3VjaCBhIGJveCB0
aGF0IGRvZXNuJ3QgaGF2ZSBhIHJlZ2lvbiByYW5nZSBiZWNhdXNlIGl0J3MgaW5saW5lIChieSBk
ZWZhdWx0KS4KKyAgICAgICAgaWYgKHN0YXJ0UmVnaW9uKQorICAgICAgICAgICAgcmV0dXJuIHRv
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoc3RhcnRSZWdpb24pOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlJ2xsIGhhdmUgcmVnaW9uIHJhbmdlcyBmb3IgaW5saW5l
cyBhcyB3ZWxsLgorICAgIExheW91dFBvaW50IGZsb3dUaHJlYWRPZmZzZXQgPSBmbG9vcmVkTGF5
b3V0UG9pbnQoY2hpbGRMYXllci5yZW5kZXJlcigpLmxvY2FsVG9Db250YWluZXJQb2ludChMYXlv
dXRQb2ludCgpLCB0aGlzLCBBcHBseUNvbnRhaW5lckZsaXApKTsKKyAgICByZXR1cm4gdG9SZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudChyZWdpb25BdEJsb2NrT2Zmc2V0KDAsIGZsaXBGb3JXcml0aW5n
TW9kZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxvd1RocmVhZE9mZnNldC55KCkgOiBm
bG93VGhyZWFkT2Zmc2V0LngoKSksIHRydWUsIERpc2FsbG93UmVnaW9uQXV0b0dlbmVyYXRpb24p
KTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXll
cihSZW5kZXJMYXllciogbGF5ZXIsIExheWVyVG9SZWdpb25NYXAmIGxheWVyVG9SZWdpb25NYXAs
IFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiByZWdpb25Ub0xheWVyTGlzdE1hcCwgYm9vbCYgbmVlZHNM
YXllclVwZGF0ZSkKK1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBSZW5kZXJGbG93VGhyZWFkOjpj
YWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGNoaWxkTGF5ZXIpCiB7
Ci0gICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSByZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIobGF5
ZXIpOworICAgIGlmICghbV9sYXllclRvUmVnaW9uTWFwKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpOworICAgIHJldHVybiBt
X2xheWVyVG9SZWdpb25NYXAtPmdldCgmY2hpbGRMYXllcik7Cit9CisKK3ZvaWQgUmVuZGVyRmxv
d1RocmVhZDo6dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKFJlbmRlckxheWVyJiBsYXllciwg
TGF5ZXJUb1JlZ2lvbk1hcCYgbGF5ZXJUb1JlZ2lvbk1hcCwgUmVnaW9uVG9MYXllckxpc3RNYXAm
IHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBib29sJiBuZWVkc0xheWVyVXBkYXRlKQoreworICAgIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24gPSByZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIo
bGF5ZXIpOwogICAgIGlmICghbmVlZHNMYXllclVwZGF0ZSkgewotICAgICAgICBBU1NFUlQobV9s
YXllclRvUmVnaW9uTWFwKTsKICAgICAgICAgLy8gRmlndXJlIG91dCBpZiB3ZSBtb3ZlZCB0aGlz
IGxheWVyIGZyb20gYSByZWdpb24gdG8gdGhlIG90aGVyLgotICAgICAgICBSZW5kZXJSZWdpb24q
IHByZXZpb3VzUmVnaW9uID0gbV9sYXllclRvUmVnaW9uTWFwLT5nZXQobGF5ZXIpOworICAgICAg
ICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcHJldmlvdXNSZWdpb24gPSBjYWNoZWRSZWdpb25G
b3JDb21wb3NpdGVkTGF5ZXIobGF5ZXIpOwogICAgICAgICBpZiAocHJldmlvdXNSZWdpb24gIT0g
cmVnaW9uKQogICAgICAgICAgICAgbmVlZHNMYXllclVwZGF0ZSA9IHRydWU7CiAgICAgfQorCiAg
ICAgaWYgKCFyZWdpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBsYXllclRvUmVnaW9uTWFwLnNl
dChsYXllciwgcmVnaW9uKTsKKworICAgIGxheWVyVG9SZWdpb25NYXAuc2V0KCZsYXllciwgcmVn
aW9uKTsKKwogICAgIFJlZ2lvblRvTGF5ZXJMaXN0TWFwOjppdGVyYXRvciBpdGVyYXRvciA9IHJl
Z2lvblRvTGF5ZXJMaXN0TWFwLmZpbmQocmVnaW9uKTsKICAgICBSZW5kZXJMYXllckxpc3QmIGxp
c3QgPSBpdGVyYXRvciA9PSByZWdpb25Ub0xheWVyTGlzdE1hcC5lbmQoKSA/IHJlZ2lvblRvTGF5
ZXJMaXN0TWFwLnNldChyZWdpb24sIFJlbmRlckxheWVyTGlzdCgpKS5pdGVyYXRvci0+dmFsdWUg
OiBpdGVyYXRvci0+dmFsdWU7Ci0gICAgbGlzdC5hcHBlbmQobGF5ZXIpOworICAgIEFTU0VSVCgh
bGlzdC5jb250YWlucygmbGF5ZXIpKTsKKyAgICBsaXN0LmFwcGVuZCgmbGF5ZXIpOwogfQogCi1i
b29sIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncygpCitib29s
IFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpCiB7Ci0g
ICAgLy8gV2Ugb25seSBuZWVkIHRvIG1hcCBsYXllcnMgdG8gcmVnaW9ucyBmb3IgbmFtZWQgZmxv
dyB0aHJlYWRzLgotICAgIC8vIE11bHRpLWNvbHVtbiB0aHJlYWRzIGFyZSBkaXNwbGF5ZWQgb24g
dG9wIG9mIHRoZSByZWdpb25zIGFuZCBkbyBub3QgcmVxdWlyZQotICAgIC8vIGRpc3RyaWJ1dGlu
ZyB0aGUgbGF5ZXJzLgotICAgIGlmICghaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisg
ICAgaWYgKCFjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGNhbid0IHVzZSBjdXJyZW50Rmxvd1RocmVhZCBhcyBp
dCBpcyBwb3NzaWJsZSB0byBoYXZlIGludGVybGVhdmVkIGZsb3cgdGhyZWFkcyBhbmQgdGhlIHdy
b25nIG9uZSBjb3VsZCBiZSB1c2VkLgpAQCAtMjg3LDM0ICszMjUsMjYgQEAgYm9vbCBSZW5kZXJG
bG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKQogICAgIEN1cnJlbnRSZW5k
ZXJGbG93VGhyZWFkRGlzYWJsZXIgZGlzYWJsZXIoJnZpZXcoKSk7CiAKICAgICAvLyBJZiB0aGUg
UmVuZGVyRmxvd1RocmVhZCBoYWQgYSB6LWluZGV4IGxheWVyIHVwZGF0ZSwgdGhlbiB3ZSBuZWVk
IHRvIHVwZGF0ZSB0aGUgY29tcG9zaXRlZCBsYXllcnMgdG9vLgotICAgIGJvb2wgbmVlZHNMYXll
clVwZGF0ZSA9IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5IHx8ICFtX2xheWVyVG9SZWdp
b25NYXAuZ2V0KCk7CisgICAgYm9vbCBuZWVkc0xheWVyVXBkYXRlID0gbGF5ZXIoKS0+aXNEaXJ0
eVJlbmRlckZsb3dUaHJlYWQoKSB8fCBtX2xheWVyc1RvUmVnaW9uTWFwcGluZ3NEaXJ0eSB8fCAh
bV9sYXllclRvUmVnaW9uTWFwLmdldCgpOwogICAgIGxheWVyKCktPnVwZGF0ZUxheWVyTGlzdHNJ
Zk5lZWRlZCgpOwogCiAgICAgTGF5ZXJUb1JlZ2lvbk1hcCBsYXllclRvUmVnaW9uTWFwOwogICAg
IFJlZ2lvblRvTGF5ZXJMaXN0TWFwIHJlZ2lvblRvTGF5ZXJMaXN0TWFwOwogCi0gICAgaWYgKFZl
Y3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXIoKS0+bmVnWk9yZGVyTGlz
dCgpKSB7Ci0gICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsK
LSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQotICAgICAgICAg
ICAgdXBkYXRlUmVnaW9uRm9yUmVuZGVyTGF5ZXIobmVnWk9yZGVyTGlzdC0+YXQoaSksIGxheWVy
VG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBkYXRlKTsKLSAg
ICB9Ci0KLSAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5
ZXIoKS0+bm9ybWFsRmxvd0xpc3QoKSkgewotICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBub3Jt
YWxGbG93TGlzdC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RT
aXplOyArK2kpCi0gICAgICAgICAgICB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihub3JtYWxG
bG93TGlzdC0+YXQoaSksIGxheWVyVG9SZWdpb25NYXAsIHJlZ2lvblRvTGF5ZXJMaXN0TWFwLCBu
ZWVkc0xheWVyVXBkYXRlKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFZlY3RvcjxSZW5kZXJMYXll
cio+KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXIoKS0+cG9zWk9yZGVyTGlzdCgpKSB7Ci0gICAgICAg
IHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKLSAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQotICAgICAgICAgICAgdXBkYXRlUmVnaW9u
Rm9yUmVuZGVyTGF5ZXIocG9zWk9yZGVyTGlzdC0+YXQoaSksIGxheWVyVG9SZWdpb25NYXAsIHJl
Z2lvblRvTGF5ZXJMaXN0TWFwLCBuZWVkc0xheWVyVXBkYXRlKTsKLSAgICB9CisgICAgUmVuZGVy
TGF5ZXJMaXN0KiBsaXN0c1tdID0geyBsYXllcigpLT5uZWdaT3JkZXJMaXN0KCksIGxheWVyKCkt
Pm5vcm1hbEZsb3dMaXN0KCksIGxheWVyKCktPnBvc1pPcmRlckxpc3QoKX07CisgICAgZm9yIChz
aXplX3QgbGlzdEluZGV4ID0gMDsgbGlzdEluZGV4IDwgc2l6ZW9mKGxpc3RzKSAvIHNpemVvZihs
aXN0c1swXSk7ICsrbGlzdEluZGV4KQorICAgICAgICBpZiAoUmVuZGVyTGF5ZXJMaXN0KiBsaXN0
ID0gbGlzdHNbbGlzdEluZGV4XSkKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBsaXN0
U2l6ZSA9IGxpc3QtPnNpemUoKTsgaSA8IGxpc3RTaXplOyArK2kpCisgICAgICAgICAgICAgICAg
dXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCpsaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1h
cCwgcmVnaW9uVG9MYXllckxpc3RNYXAsIG5lZWRzTGF5ZXJVcGRhdGUpOwogCiAgICAgaWYgKG5l
ZWRzTGF5ZXJVcGRhdGUpIHsKICAgICAgICAgaWYgKCFtX2xheWVyVG9SZWdpb25NYXApCiAgICAg
ICAgICAgICBtX2xheWVyVG9SZWdpb25NYXAgPSBhZG9wdFB0cihuZXcgTGF5ZXJUb1JlZ2lvbk1h
cCgpKTsKICAgICAgICAgbV9sYXllclRvUmVnaW9uTWFwLT5zd2FwKGxheWVyVG9SZWdpb25NYXAp
OworCisgICAgICAgIGlmICghbV9yZWdpb25Ub0xheWVyTGlzdE1hcCkKKyAgICAgICAgICAgIG1f
cmVnaW9uVG9MYXllckxpc3RNYXAgPSBhZG9wdFB0cihuZXcgUmVnaW9uVG9MYXllckxpc3RNYXAo
KSk7CisgICAgICAgIG1fcmVnaW9uVG9MYXllckxpc3RNYXAtPnN3YXAocmVnaW9uVG9MYXllckxp
c3RNYXApOwogICAgIH0KIAogICAgIG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5ID0gZmFs
c2U7CkBAIC0zMjMsNiArMzUzLDE1IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTGF5
ZXJUb1JlZ2lvbk1hcHBpbmdzKCkKIH0KICNlbmRpZgogCitib29sIFJlbmRlckZsb3dUaHJlYWQ6
OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAoreworICAgIC8vIFdl
IG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMgZm9yIG5hbWVkIGZsb3cgdGhyZWFk
cy4KKyAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFkcyBhcmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0
aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUKKyAgICAvLyBkaXN0cmlidXRpbmcgdGhlIGxh
eWVycy4KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1
cGRhdGVMb2dpY2FsV2lkdGgoKQogewogICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoID0gaW5p
dGlhbExvZ2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmgKaW5kZXggN2JlYzRhNi4uODViMGQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC00MSwxMyArNDEsMTYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogc3RydWN0IExheWVyRnJhZ21lbnQ7CiB0eXBlZGVmIFZlY3RvcjxMYXllckZyYWdt
ZW50LCAxPiBMYXllckZyYWdtZW50czsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CitjbGFzcyBS
ZW5kZXJOYW1lZEZsb3dGcmFnbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVy
UmVnaW9uOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBMaXN0
SGFzaFNldDxSZW5kZXJSZWdpb24qPiBSZW5kZXJSZWdpb25MaXN0OwogdHlwZWRlZiBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiBSZW5kZXJMYXllckxpc3Q7Ci10eXBlZGVmIEhhc2hNYXA8UmVuZGVyUmVn
aW9uKiwgUmVuZGVyTGF5ZXJMaXN0PiBSZWdpb25Ub0xheWVyTGlzdE1hcDsKLXR5cGVkZWYgSGFz
aE1hcDxSZW5kZXJMYXllciosIFJlbmRlclJlZ2lvbio+IExheWVyVG9SZWdpb25NYXA7Cit0eXBl
ZGVmIEhhc2hNYXA8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqLCBSZW5kZXJMYXllckxpc3Q+IFJl
Z2lvblRvTGF5ZXJMaXN0TWFwOwordHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQqPiBMYXllclRvUmVnaW9uTWFwOworI2VuZGlmCiAKIC8vIFJlbmRl
ckZsb3dUaHJlYWQgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgcmVuZGVyIG9iamVjdHMgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBhCiAvLyBmbG93IHRocmVhZC4gSXQgd2lsbCBhbHNvIGhlbHAgaW4g
ZG9pbmcgdGhlIGxheW91dC4gSG93ZXZlciwgaXQgd2lsbCBub3QgcmVuZGVyCkBAIC0xMTcsOCAr
MTIwLDYgQEAgcHVibGljOgogCiAgICAgUmVuZGVyUmVnaW9uKiByZWdpb25BdEJsb2NrT2Zmc2V0
KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQsIGJvb2wgZXh0ZW5kTGFzdFJlZ2lvbiA9IGZh
bHNlLCBSZWdpb25BdXRvR2VuZXJhdGlvblBvbGljeSA9IEFsbG93UmVnaW9uQXV0b0dlbmVyYXRp
b24pOwogCi0gICAgY29uc3QgUmVuZGVyTGF5ZXJMaXN0KiBnZXRMYXllckxpc3RGb3JSZWdpb24o
UmVuZGVyUmVnaW9uKikgY29uc3Q7Ci0KICAgICBib29sIHJlZ2lvbnNIYXZlVW5pZm9ybUxvZ2lj
YWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRo
OyB9CiAgICAgYm9vbCByZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0OyB9CiAKQEAgLTE4MSwxMyAr
MTgyLDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTmVlZHNUd29QaGFzZXNMYXlvdXQoKSB7
IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSBmYWxzZTsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgIC8vIFdoZXRoZXIgYW55IG9mIHRoZSByZWdpb25zIGhhcyBhIGNv
bXBvc2l0aW5nIGRlc2NlbmRhbnQuCisgICAgYm9vbCBoYXNDb21wb3NpdGluZ1JlZ2lvbkRlc2Nl
bmRhbnQoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0TmVlZHNMYXllclRvUmVnaW9uTWFwcGluZ3NV
cGRhdGUoKSB7IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5ID0gdHJ1ZTsgfQotICAgIHZv
aWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKQorICAgIHZvaWQgdXBkYXRl
QWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzSWZOZWVkZWQoKQogICAgIHsKICAgICAgICAgaWYgKG1f
bGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KQotICAgICAgICAgICAgdXBkYXRlTGF5ZXJUb1Jl
Z2lvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGlu
Z3MoKTsKICAgICB9CisKKyAgICBjb25zdCBSZW5kZXJMYXllckxpc3QqIGdldExheWVyTGlzdEZv
clJlZ2lvbihSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCopOworCisgICAgUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQqIHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciYpOyAvLyBCeSBt
ZWFucyBvZiBnZXRSZWdpb25SYW5nZUZvckJveCBvciByZWdpb25BdEJsb2NrT2Zmc2V0LgorICAg
IFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBjYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIo
UmVuZGVyTGF5ZXImKTsKKwogI2VuZGlmCisgICAgdmlydHVhbCBib29sIGNvbGxlY3RzR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdDsKIAogICAgIHZvaWQgcHVzaEZsb3dUaHJlYWRM
YXlvdXRTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHBvcEZsb3dUaHJlYWRM
YXlvdXRTdGF0ZSgpOwpAQCAtMjIyLDcgKzIzMywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgTGF5b3V0
UmVjdCBjb21wdXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0IExheW91dFBvaW50JiwgY29uc3Qg
TGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbkZvckNvbXBvc2l0ZWRM
YXllcihSZW5kZXJMYXllciopOworICAgIGJvb2wgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBp
bmdzKCk7CisKKyAgICAvLyBUcmlnZ2VycyBhIGxheWVycycgdXBkYXRlIGlmIGEgbGF5ZXIgaGFz
IG1vdmVkIGZyb20gYSByZWdpb24gdG8gYW5vdGhlciBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuCisg
ICAgdm9pZCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoUmVuZGVyTGF5ZXImLCBMYXllclRv
UmVnaW9uTWFwJiwgUmVnaW9uVG9MYXllckxpc3RNYXAmLCBib29sJiBuZWVkc0xheWVyVXBkYXRl
KTsKKyAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uRm9yQ29tcG9zaXRlZExheWVy
KFJlbmRlckxheWVyKik7CiAgICAgYm9vbCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsK
ICAgICB2b2lkIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKFJlbmRlckxheWVyKiwgTGF5ZXJU
b1JlZ2lvbk1hcCYsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiwgYm9vbCYgbmVlZHNMYXllclVwZGF0
ZSk7CiAjZW5kaWYKQEAgLTMwNCw3ICszMTksMTEgQEAgcHJvdGVjdGVkOgogICAgIH07CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gVG8gZWFzaWx5IGZpbmQgdGhl
IHJlZ2lvbiB3aGVyZSBhIGxheWVyIHNob3VsZCBiZSBwYWludGVkLgogICAgIE93blB0cjxMYXll
clRvUmVnaW9uTWFwPiBtX2xheWVyVG9SZWdpb25NYXA7CisKKyAgICAvLyBUbyBlYXNpbHkgZmlu
ZCB0aGUgbGlzdCBvZiBsYXllcnMgdGhhdCBwYWludCBpbiBhIHJlZ2lvbi4KKyAgICBPd25QdHI8
UmVnaW9uVG9MYXllckxpc3RNYXA+IG1fcmVnaW9uVG9MYXllckxpc3RNYXA7CiAjZW5kaWYKIAog
ICAgIC8vIEEgbWFwcyBmcm9tIFJlbmRlckJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKaW5kZXggMTg2MmE5NS4uNmJhZTQyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAu
aCIKIAorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5o
IgpAQCAtMjUxLDYgKzI1MiwxMiBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoVmlldyhj
b25zdCBSZW5kZXJWaWV3KiB2aWV3LCBjb25zdCBMYXlvdXRTaXplJiBzY3JvbAogICAgIHN0ZXBJ
bnNlcnRlZChzdGVwKTsKIH0KIAordm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaFJlbmRlckZs
b3dUaHJlYWQoY29uc3QgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKK3sKKyAgICBtX21h
cHBpbmcuYXBwZW5kKFJlbmRlckdlb21ldHJ5TWFwU3RlcChmbG93VGhyZWFkLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSkpOworICAgIHN0ZXBJbnNlcnRlZChtX21hcHBpbmcubGFzdCgpKTsK
K30KKwogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cG9wTWFwcGluZ3NUb0FuY2VzdG9yKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yUmVuZGVyZXIpCiB7CiAgICAgQVNTRVJU
KG1fbWFwcGluZy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdlb21ldHJ5TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2Vv
bWV0cnlNYXAuaAppbmRleCA5MmQ1MjA5Li40NGZiYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJMYXll
cjsKIGNsYXNzIFJlbmRlckxheWVyTW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJWaWV3OwpAQCAt
MTEwLDYgKzExMSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJlbmRlclZpZXcgZ2V0cyBzcGVjaWFs
IHRyZWF0bWVudCwgYmVjYXVzZSBpdCBhcHBsaWVzIHRoZSBzY3JvbGwgb2Zmc2V0IG9ubHkgZm9y
IGVsZW1lbnRzIGluc2lkZSBpbiBmaXhlZCBwb3NpdGlvbi4KICAgICB2b2lkIHB1c2hWaWV3KGNv
bnN0IFJlbmRlclZpZXcqLCBjb25zdCBMYXlvdXRTaXplJiBzY3JvbGxPZmZzZXQsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4KiA9IDApOworICAgIHZvaWQgcHVzaFJlbmRlckZsb3dUaHJlYWQo
Y29uc3QgUmVuZGVyRmxvd1RocmVhZCopOwogCiBwcml2YXRlOgogICAgIHZvaWQgbWFwVG9Db250
YWluZXIoVHJhbnNmb3JtU3RhdGUmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250
YWluZXIgPSAwKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IDY3NTFiNWYuLmM0YjIxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtODQsNiArODQsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJl
YWQuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNh
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU2Nyb2xsYmFyLmgiCkBAIC00MDMxLDcgKzQwMzIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpw
YWludExpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxpc3QsIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dAogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LT5zaXplKCk7ICsraSkgewog
ICAgICAgICBSZW5kZXJMYXllciogY2hpbGRMYXllciA9IGxpc3QtPmF0KGkpOwotICAgICAgICBp
ZiAoY2hpbGRMYXllci0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgIGlm
IChjaGlsZExheWVyLT5pc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJl
Z2lvbnMoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICghY2hpbGRMYXll
ci0+aXNQYWdpbmF0ZWQoKSkKQEAgLTQ0NDUsNiArNDQ0NiwyMyBAQCBFbGVtZW50KiBSZW5kZXJM
YXllcjo6ZW5jbG9zaW5nRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK1JlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKCkgY29uc3QK
K3sKKyAgICBSZW5kZXJMYXllciogY3VyciA9IHBhcmVudCgpOworICAgIGZvciAoOyBjdXJyICYm
ICFjdXJyLT5pc1JlbmRlckZsb3dUaHJlYWQoKTsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7Cisg
ICAgICAgIGlmIChjdXJyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkgJiYgY3Vyci0+aXNDb21wb3Np
dGVkKCkpIHsKKyAgICAgICAgICAgIC8vIFdlIG9ubHkgYWRqdXN0IHRoZSBwb3NpdGlvbiBvZiB0
aGUgZmlyc3QgbGV2ZWwgb2YgbGF5ZXJzLgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIGN1cnI7Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6OmlzRmxv
d1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHJlbmRlcmVyKCkuaXNSZW5kZXJGbG93VGhyZWFkKCkgJiYgdG9SZW5kZXJGbG93
VGhyZWFkKHJlbmRlcmVyKCkpLmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKTsK
K30KKwogLy8gQ29tcHV0ZSB0aGUgei1vZmZzZXQgb2YgdGhlIHBvaW50IGluIHRoZSB0cmFuc2Zv
cm1TdGF0ZS4KIC8vIFRoaXMgaXMgZWZmZWN0aXZlbHkgcHJvamVjdGluZyBhIHJheSBub3JtYWwg
dG8gdGhlIHBsYW5lIG9mIGFuY2VzdG9yLCBmaW5kaW5nIHdoZXJlIHRoYXQKIC8vIHJheSBpbnRl
cnNlY3RzIHRhcmdldCwgYW5kIGNvbXB1dGluZyB0aGUgeiBkZWx0YSBiZXR3ZWVuIHRob3NlIHR3
byBwb2ludHMuCkBAIC00ODkwLDcgKzQ5MDgsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6
OmhpdFRlc3RMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiBsaXN0LCBSZW5kZXJMYXllciogcgog
ICAgIFJlbmRlckxheWVyKiByZXN1bHRMYXllciA9IDA7CiAgICAgZm9yIChpbnQgaSA9IGxpc3Qt
PnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExh
eWVyID0gbGlzdC0+YXQoaSk7Ci0gICAgICAgIGlmIChjaGlsZExheWVyLT5pc091dE9mRmxvd1Jl
bmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgaWYgKGNoaWxkTGF5ZXItPmlzRmxvd1RocmVhZENv
bGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIFJlbmRlckxheWVyKiBoaXRMYXllciA9IDA7CiAgICAgICAgIEhpdFRlc3RS
ZXN1bHQgdGVtcFJlc3VsdChyZXN1bHQuaGl0VGVzdExvY2F0aW9uKCkpOwpAQCAtNTQ5Nyw3ICs1
NTE1LDggQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMoY29u
c3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIGMKICAgICAgICAgc2l6ZV90IGxpc3RTaXpl
ID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IHBv
c1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgaWYgKGZsYWdzICYgSW5jbHVkZUNvbXBv
c2l0ZWREZXNjZW5kYW50cyB8fCAhY3VyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAg
ICAgICAvLyBUaGUgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGlzIGlnbm9yZWQgd2hlbiB3ZSBjYWxj
dWxhdGUgdGhlIGJvdW5kcyBvZiB0aGUgUmVuZGVyVmlldy4KKyAgICAgICAgICAgIGlmICgoZmxh
Z3MgJiBJbmNsdWRlQ29tcG9zaXRlZERlc2NlbmRhbnRzIHx8ICFjdXJMYXllci0+aXNDb21wb3Np
dGVkKCkpICYmICFjdXJMYXllci0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJz
VW5kZXJSZWdpb25zKCkpIHsKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGNoaWxkVW5pb25C
b3VuZHMgPSBjdXJMYXllci0+Y2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgMCwgZGVzY2VuZGFu
dEZsYWdzKTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5kcy51bml0ZShjaGlsZFVuaW9uQm91
bmRzKTsKICAgICAgICAgICAgIH0KQEAgLTU1MTAsNyArNTUyOSw3IEBAIExheW91dFJlY3QgUmVu
ZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rv
ckxheWVyLCBjCiAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93
TGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAvLyBSZW5kZXJWaWV3IHdpbGwgYWx3YXlzIHJldHVy
biB0aGUgc2l6ZSBvZiB0aGUgZG9jdW1lbnQsIGJlZm9yZSByZWFjaGluZyB0aGlzIHBvaW50LAog
ICAgICAgICAgICAgLy8gc28gdGhlcmUncyBubyB3YXkgd2UgY291bGQgaGl0IGEgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkIGhlcmUuCi0gICAgICAgICAgICBBU1NFUlQoIWN1ckxheWVyLT5pc091dE9m
Rmxvd1JlbmRlckZsb3dUaHJlYWQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWN1ckxheWVyLT5p
c0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSk7CiAgICAg
ICAgICAgICBpZiAoZmxhZ3MgJiBJbmNsdWRlQ29tcG9zaXRlZERlc2NlbmRhbnRzIHx8ICFjdXJM
YXllci0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGN1ckFi
c0JvdW5kcyA9IGN1ckxheWVyLT5jYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzLCAwLCBkZXNjZW5k
YW50RmxhZ3MpOwogICAgICAgICAgICAgICAgIHVuaW9uQm91bmRzLnVuaXRlKGN1ckFic0JvdW5k
cyk7CkBAIC01NzMzLDcgKzU3NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxp
c3RzKCkKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIXJlbmRl
cmVyKCkuZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7Ci0gICAgICAgIGlmIChyZW5kZXJlcigp
LmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICBpZiAoaXNGbG93VGhyZWFk
Q29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCiAgICAgICAgICAgICB0b1Jl
bmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuc2V0TmVlZHNMYXllclRvUmVnaW9uTWFwcGluZ3NV
cGRhdGUoKTsKICAgICAgICAgY29tcG9zaXRvcigpLnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJl
YnVpbGQoKTsKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQoKSkKQEAgLTU3NTksNyArNTc3OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRp
cnR5Tm9ybWFsRmxvd0xpc3QoKQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKLSAgICAgICAg
aWYgKHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgIGlm
IChpc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKICAg
ICAgICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZChyZW5kZXJlcigpKS5zZXROZWVkc0xheWVyVG9S
ZWdpb25NYXBwaW5nc1VwZGF0ZSgpOwogICAgICAgICBjb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRp
bmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAppbmRleCAzMzI3YTMxLi5lZDEwYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtNzUwLDYgKzc1MCw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja2luZyAhPSAwOyB9CisgICAgYm9vbCBoYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQo
KSBjb25zdCB7IHJldHVybiBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudDsgfQogICAgIGJvb2wg
aGFzQ29tcG9zaXRlZE1hc2soKSBjb25zdDsKICAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tp
bmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KICAgICBSZW5kZXJMYXllckJh
Y2tpbmcqIGVuc3VyZUJhY2tpbmcoKTsKQEAgLTgxMyw3ICs4MTQsMTkgQEAgcHVibGljOgogICAg
IFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uIHZpZXdwb3J0Q29uc3RyYWlu
ZWROb3RDb21wb3NpdGVkUmVhc29uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Vmlld3Bv
cnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24+KG1fdmlld3BvcnRDb25zdHJhaW5lZE5v
dENvbXBvc2l0ZWRSZWFzb24pOyB9CiAjZW5kaWYKICAgICAKKyAgICBib29sIGlzUmVuZGVyRmxv
d1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuaXNSZW5kZXJGbG93VGhyZWFkKCk7
IH0KICAgICBib29sIGlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJu
IHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCk7IH0KKyAgICBib29sIGlz
SW5zaWRlRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuZmxvd1RocmVhZFN0
YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVGbG93VGhyZWFkOyB9CisgICAgYm9vbCBp
c0luc2lkZU91dE9mRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuZmxvd1Ro
cmVhZFN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpJbnNpZGVPdXRPZkZsb3dUaHJlYWQ7IH0KKyAg
ICBib29sIGlzRGlydHlSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc1JlbmRlckZsb3dUaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBtX3pPcmRlckxpc3Rz
RGlydHkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5OworICAgIH0KKworICAgIGJvb2wgaXNGbG93
VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Q7CisKKyAg
ICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKCkgY29uc3Q7CiAKIHBy
aXZhdGU6CiAgICAgZW51bSBDb2xsZWN0TGF5ZXJzQmVoYXZpb3IgeyBTdG9wQXRTdGFja2luZ0Nv
bnRleHRzLCBTdG9wQXRTdGFja2luZ0NvbnRhaW5lcnMgfTsKQEAgLTEwODIsNyArMTA5NSw2IEBA
IHByaXZhdGU6CiAgICAgYm9vbCB1c2VSZWdpb25CYXNlZENvbHVtbnMoKSBjb25zdDsKICAgICAK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICAgIAotICAgIGJvb2wgaGFzQ29tcG9z
aXRpbmdEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRh
bnQ7IH0KICAgICB2b2lkIHNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudChib29sIGIpICB7IG1f
aGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50ID0gYjsgfQogICAgIAogICAgIGVudW0gSW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IDlhYWI2NWYuLmFjOWQ3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC00OCwxMCArNDgsMTMg
QEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgog
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQu
aCIKICNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVk
ZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKKyNpbmNs
dWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtNDA4
LDYgKzQxMSw5IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRDbGlwQ29tcG9zaXRl
ZEJvdW5kcygpIGNvbnN0CiAgICAgaWYgKGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVz
aW5nQ29tcG9zaXRlZFNjcm9sbGluZyhtX293bmluZ0xheWVyKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKG1fb3duaW5nTGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBo
aWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC02NDQsNiArNjUwLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgSW50UmVjdCByZWxhdGl2ZUNv
bXBvc2l0aW5nQm91bmRzKGxvY2FsQ29tcG9zaXRpbmdCb3VuZHMpOwogICAgIHJlbGF0aXZlQ29t
cG9zaXRpbmdCb3VuZHMubW92ZUJ5KGRlbHRhKTsKIAorICAgIGFkanVzdEFuY2VzdG9yQ29tcG9z
aXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbXBB
bmNlc3Rvcik7CisKICAgICBJbnRQb2ludCBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb247CiAg
ICAgaWYgKGNvbXBBbmNlc3RvciAmJiBjb21wQW5jZXN0b3ItPmJhY2tpbmcoKS0+aGFzQ2xpcHBp
bmdMYXllcigpKSB7CiAgICAgICAgIC8vIElmIHRoZSBjb21wb3NpdGluZyBhbmNlc3RvciBoYXMg
YSBsYXllciB0byBjbGlwIGNoaWxkcmVuLCB3ZSBwYXJlbnQgaW4gdGhhdCwgYW5kIHRoZXJlZm9y
ZQpAQCAtODQxLDYgKzg0OSw0MiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3Jh
cGhpY3NMYXllckdlb21ldHJ5KCkKICAgICByZWdpc3RlclNjcm9sbGluZ0xheWVycygpOwogfQog
Cit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6YWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5k
c0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3Qg
UmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCFtX293
bmluZ0xheWVyLmlzSW5zaWRlRmxvd1RocmVhZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBS
ZW5kZXJMYXllciogZmxvd1RocmVhZExheWVyID0gbV9vd25pbmdMYXllci5pc0luc2lkZU91dE9m
Rmxvd1RocmVhZCgpID8gbV9vd25pbmdMYXllci5zdGFja2luZ0NvbnRhaW5lcigpIDogbV9vd25p
bmdMYXllci5lbmNsb3NpbmdGbG93VGhyZWFkQW5jZXN0b3IoKTsKKyAgICBpZiAoZmxvd1RocmVh
ZExheWVyICYmIGZsb3dUaHJlYWRMYXllci0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAg
ICAgUmVuZGVyRmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRvUmVuZGVyRmxvd1RocmVhZChmbG93
VGhyZWFkTGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICBpZiAobV9vd25pbmdMYXllci5pc0Zs
b3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSkgeworICAgICAg
ICAgICAgLy8gVGhlIFJlbmRlck5hbWVkRmxvd1RocmVhZCBpcyBub3QgY29tcG9zaXRlZCwgYXMg
d2UgbmVlZCBpdCB0byBwYWludCB0aGUgCisgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kIGxheWVy
IG9mIHRoZSByZWdpb25zLiBXZSBuZWVkIHRvIGNvbXBlbnNhdGUgZm9yIHRoYXQgYnkgbWFudWFs
bHkKKyAgICAgICAgICAgIC8vIHN1YnRyYWN0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvdy10
aHJlYWQuCisgICAgICAgICAgICBJbnRQb2ludCBmbG93UG9zaXRpb247CisgICAgICAgICAgICBm
bG93VGhyZWFkTGF5ZXItPmNvbnZlcnRUb1BpeGVsU25hcHBlZExheWVyQ29vcmRzKGNvbXBvc2l0
aW5nQW5jZXN0b3IsIGZsb3dQb3NpdGlvbik7CisgICAgICAgICAgICBhbmNlc3RvckNvbXBvc2l0
aW5nQm91bmRzLm1vdmVCeShmbG93UG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgLy8g
TW92ZSB0aGUgYW5jZXN0b3IgcG9zaXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgcmVnaW9uIHdoZXJl
IHRoZSBjb21wb3NpdGVkIGxheWVyIGlzIGdvaW5nIHRvIGRpc3BsYXkuCisgICAgICAgIFJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50KiBwYXJlbnRSZWdpb24gPSBmbG93VGhyZWFkLmNhY2hlZFJlZ2lv
bkZvckNvbXBvc2l0ZWRMYXllcihtX293bmluZ0xheWVyKTsKKyAgICAgICAgaWYgKHBhcmVudFJl
Z2lvbikgeworICAgICAgICAgICAgSW50UG9pbnQgZmxvd0RlbHRhOworICAgICAgICAgICAgbV9v
d25pbmdMYXllci5jb252ZXJ0VG9QaXhlbFNuYXBwZWRMYXllckNvb3JkcyhmbG93VGhyZWFkTGF5
ZXIsIGZsb3dEZWx0YSk7CisgICAgICAgICAgICBwYXJlbnRSZWdpb24tPmFkanVzdFJlZ2lvbkJv
dW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoZmxvd0RlbHRhLCBhbmNlc3RvckNvbXBvc2l0
aW5nQm91bmRzKTsKKyAgICAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBsYXllck93bmVy
ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChwYXJlbnRSZWdpb24tPmxheWVyT3duZXIoKSk7Cisg
ICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+aGFzTGF5ZXIoKSAmJiBsYXllck93bmVyLT5sYXll
cigpLT5iYWNraW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
cmVnaW9uIHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gt
c2hhZG93cyB0byBsYXllcnMgaW5zaWRlIGl0LgorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhh
dCB0aGUgY29tcG9zaXRlZCBib3VuZHMgb2YgdGhlIFJlbmRlclJlZ2lvbiBhcmUgYWxyZWFkeSBj
YWxjdWxhdGVkCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSB3aWxsIG9ubHkKKyAgICAgICAgICAgICAg
ICAvLyBpdGVyYXRlIG9uIHRoZSBjb250ZW50IG9mIHRoZSByZWdpb24gYWZ0ZXIgdGhlIHJlZ2lv
biBpdHNlbGYgaXMgY29tcHV0ZWQuCisgICAgICAgICAgICAgICAgYW5jZXN0b3JDb21wb3NpdGlu
Z0JvdW5kcy5tb3ZlQnkocm91bmRlZEludFBvaW50KGxheWVyT3duZXItPmxheWVyKCktPmJhY2tp
bmcoKS0+Y29tcG9zaXRlZEJvdW5kcygpLmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBh
bmNlc3RvckNvbXBvc2l0aW5nQm91bmRzLm1vdmUoLWxheWVyT3duZXItPmJvcmRlckFuZFBhZGRp
bmdTdGFydCgpLCAtbGF5ZXJPd25lci0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZENvbnRlbnRzKGJvb2wgaXNTaW1wbGVDb250YWluZXIs
IGJvb2wmIGRpZFVwZGF0ZUNvbnRlbnRzUmVjdCkKIHsKICAgICBpZiAoIW1fb3duaW5nTGF5ZXIu
aGFzVmlzaWJsZUNvbnRlbnQoKSkKQEAgLTE1NzAsNyArMTYxNCw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXJCYWNraW5nOjppc1NpbXBsZUNvbnRhaW5lckNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogICAg
IGlmIChwYWludHNCb3hEZWNvcmF0aW9ucygpIHx8IHBhaW50c0NoaWxkcmVuKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyUmVnaW9uKCkpCisg
ICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVuZGVyZXIoKS5pc1JlbmRlclZpZXco
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmlu
ZGV4IDlmNTNmMzIuLjM2ZDJmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTI3OCw2ICsyNzgsOSBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlKTsKIAorICAgIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdXBkYXRlR3Jh
cGhpY3NMYXllckdlb21ldHJ5LgorICAgIHZvaWQgYWRqdXN0QW5jZXN0b3JDb21wb3NpdGluZ0Jv
dW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcywgY29u
c3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0OworCiAgICAgc3RhdGlj
IENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0
eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlEIGNzc1RvR3JhcGhpY3NMYXllclBy
b3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGUwMTUzNmQuLmQxYTBkOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CkBAIC00NiwxMCArNDYsMTIgQEAKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRl
ckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAi
UmVuZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTkzMSw4ICs5MzMsMTEgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJM
YXllciogYW5jZXN0b3IKICAgICBsYXllci51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3Mo
KTsKICAgICBsYXllci51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsKIAotICAgIGlmIChsYXll
ci5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICBpZiAobGF5ZXIuaXNGbG93VGhy
ZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAgICAgICAgUmVu
ZGVyRmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRvUmVuZGVyRmxvd1RocmVhZChsYXllci5yZW5k
ZXJlcigpKTsKKyAgICAgICAgbGF5ZXIuc2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGZsb3dU
aHJlYWQuaGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkpOwogICAgICAgICByZXR1cm47
CisgICAgfQogCiAgICAgaWYgKG92ZXJsYXBNYXApCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21l
dHJ5TWFwKCkucHVzaE1hcHBpbmdzVG9BbmNlc3RvcigmbGF5ZXIsIGFuY2VzdG9yTGF5ZXIpOwpA
QCAtMTAxMyw2ICsxMDE4LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
Q29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1JlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50Q29udGFpbmVyKCkpIHsKKyAgICAgICAgLy8gV2UgYXJlIGdvaW5n
IHRvIGNvbGxlY3QgbGF5ZXJzIGZyb20gdGhlIFJlbmRlckZsb3dUaHJlYWQgaW50byB0aGUgR3Jh
cGhpY3NMYXllciBvZiB0aGUgcGFyZW50IG9mIHRoZQorICAgICAgICAvLyBhbm9ueW1vdXMgUmVu
ZGVyUmVnaW9uLCBidXQgZmlyc3Qgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFyZW50
IGl0c2VsZiBvZiB0aGUgcmVnaW9uIGlzIGdvaW5nIHRvCisgICAgICAgIC8vIGhhdmUgYSBjb21w
b3NpdGVkIGxheWVyLiBXZSBvbmx5IHdhbnQgdG8gbWFrZSByZWdpb25zIGNvbXBvc2l0ZWQgd2hl
biB0aGVyZSdzIGFuIGFjdHVhbCBsYXllciB0aGF0IHdlCisgICAgICAgIC8vIG5lZWQgdG8gbW92
ZSB0byB0aGF0IHJlZ2lvbi4KKyAgICAgICAgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKHRvUmVuZGVyQmxvY2tGbG93KGxheWVyLnJlbmRlcmVyKCkpLnJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50KCksIG92ZXJsYXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQsIGFueURl
c2NlbmRhbnRIYXMzRFRyYW5zZm9ybSk7CisgICAgfQorCiAgICAgCiAgICAgaWYgKFZlY3RvcjxS
ZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgp
OyBpIDwgc2l6ZTsgKytpKQpAQCAtMTExNiw2ICsxMTMwLDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0Fu
Y2VzdG9yKGFuY2VzdG9yTGF5ZXIpOwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Y29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50KiByZWdpb24sIE92ZXJsYXBNYXAqIG92ZXJsYXBNYXAsIENvbXBvc2l0aW5nU3RhdGUmIGNo
aWxkU3RhdGUsIGJvb2wmIGxheWVyc0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMzRFRy
YW5zZm9ybSkKK3sKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFk
KCk7CisgICAgCisgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgIG92ZXJsYXBNYXAtPmdlb21l
dHJ5TWFwKCkucHVzaFJlbmRlckZsb3dUaHJlYWQoZmxvd1RocmVhZCk7CisKKyAgICBpZiAoY29u
c3QgUmVuZGVyTGF5ZXJMaXN0KiBsYXllckxpc3QgPSBmbG93VGhyZWFkLT5nZXRMYXllckxpc3RG
b3JSZWdpb24ocmVnaW9uKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgbGlzdFNpemUg
PSBsYXllckxpc3QtPnNpemUoKTsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgIFJl
bmRlckxheWVyJiBjdXJMYXllciA9ICpsYXllckxpc3QtPmF0KGkpOworICAgICAgICAgICAgQVNT
RVJUKGZsb3dUaHJlYWQtPnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihjdXJMYXllcikgPT0gcmVn
aW9uKTsKKyAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhmbG93VGhy
ZWFkLT5sYXllcigpLCBjdXJMYXllciwgb3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwgbGF5ZXJzQ2hh
bmdlZCwgYW55RGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmIChvdmVybGFwTWFwKQorICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnBv
cE1hcHBpbmdzVG9BbmNlc3RvcihyZWdpb24tPmxheWVyT3duZXIoKSk7Cit9CisKIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciYgY2hp
bGRMYXllciwgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyKQogewogICAgIEFTU0VSVCghcGFyZW50
TGF5ZXIgfHwgY2hpbGRMYXllci5hbmNlc3RvckNvbXBvc2l0aW5nTGF5ZXIoKSA9PSBwYXJlbnRM
YXllcik7CkBAIC0xMTU5LDcgKzExOTUsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAg
IC8vIE5vdGUgdGhhdCB3ZSBjYW4gb25seSBkbyB3b3JrIGhlcmUgdGhhdCBpcyBpbmRlcGVuZGVu
dCBvZiB3aGV0aGVyIHRoZSBkZXNjZW5kYW50IGxheWVycwogICAgIC8vIGhhdmUgYmVlbiBwcm9j
ZXNzZWQuIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpIHdpbGwgYWxyZWFkeSBoYXZl
IGRvbmUgdGhlIHJlcGFpbnQgaWYgbmVjZXNzYXJ5LgogCi0gICAgaWYgKGxheWVyLmlzT3V0T2ZG
bG93UmVuZGVyRmxvd1RocmVhZCgpKQorICAgIC8vIERvIG5vdCBpdGVyYXRlIHRoZSBSZW5kZXJG
bG93VGhyZWFkIGRpcmVjdGx5LiBXZSBhcmUgZ29pbmcgdG8gY29sbGVjdCBjb21wb3NpdGVkIGxh
eWVycyBhcyBwYXJ0IG9mIHJlZ2lvbnMuCisgICAgaWYgKGxheWVyLmlzRmxvd1RocmVhZENvbGxl
Y3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBsYXllckJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7
CkBAIC0xMjEwLDYgKzEyNDcsOSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWls
ZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgICAgICAg
ICAgY2hpbGRMaXN0LmFwcGVuZChsYXllckJhY2tpbmctPmZvcmVncm91bmRMYXllcigpKTsKICAg
ICB9CiAKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
Q29udGFpbmVyKCkpCisgICAgICAgIHJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZSh0
b1JlbmRlckJsb2NrRmxvdyhsYXllci5yZW5kZXJlcigpKS5yZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dCgpLCBsYXllckNoaWxkcmVuLCBkZXB0aCArIDEpOworCiAgICAgaWYgKFZlY3RvcjxSZW5kZXJM
YXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLm5vcm1hbEZsb3dMaXN0KCkpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOyBpIDwg
c2l6ZTsgKytpKQogICAgICAgICAgICAgcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKCpub3Jt
YWxGbG93TGlzdC0+YXQoaSksIGNoaWxkTGlzdCwgZGVwdGggKyAxKTsKQEAgLTEyNTMsNiArMTI5
MywyMiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5
ZXJUcmVlKFJlbmRlckxheWVyJiBsYXllciwgVmVjdAogICAgIH0KIH0KIAordm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJO
YW1lZEZsb3dGcmFnbWVudCogcmVnaW9uLCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExp
c3QsIGludCBkZXB0aCkKK3sKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93
VGhyZWFkKCk7CisgICAgQVNTRVJUKGZsb3dUaHJlYWQtPmNvbGxlY3RzR3JhcGhpY3NMYXllcnNV
bmRlclJlZ2lvbnMoKSk7CisgICAgaWYgKGNvbnN0IFJlbmRlckxheWVyTGlzdCogbGF5ZXJMaXN0
ID0gZmxvd1RocmVhZC0+Z2V0TGF5ZXJMaXN0Rm9yUmVnaW9uKHJlZ2lvbikpIHsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGF5ZXJMaXN0LT5zaXplKCk7IGkgPCBsaXN0
U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciYgY3VyTGF5ZXIgPSAqbGF5ZXJM
aXN0LT5hdChpKTsKKyAgICAgICAgICAgIEFTU0VSVChmbG93VGhyZWFkLT5yZWdpb25Gb3JDb21w
b3NpdGVkTGF5ZXIoY3VyTGF5ZXIpID09IHJlZ2lvbik7CisgICAgICAgICAgICByZWJ1aWxkQ29t
cG9zaXRpbmdMYXllclRyZWUoY3VyTGF5ZXIsIGNoaWxkTGlzdCwgZGVwdGggKyAxKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0Rp
ZENoYW5nZUxvY2F0aW9uKGNvbnN0IEludFBvaW50JiBjb250ZW50c09mZnNldCkKIHsKICAgICBp
ZiAobV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyKQpAQCAtMTc3MSw5ICsxODI3LDE5IEBAIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29uc3Qg
UmVuZGVyTGF5ZXImIGxheWVyLCBSCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5C
ZUNvbXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKSBjb25zdAogewotICAgIC8vIEZJ
WE1FOiBXZSBkaXNhYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGZvciBlbGVtZW50cyBpbiBh
IFJlbmRlckZsb3dUaHJlYWQgYXMgaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgotICAgIC8vIFNl
ZSBodHRwOi8vd2Via2l0Lm9yZy9iLzg0OTAwIHRvIHJlLWVuYWJsZSBpdC4KLSAgICByZXR1cm4g
bV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nICYmIGxheWVyLmlzU2VsZlBhaW50aW5nTGF5ZXIo
KSAmJiBsYXllci5yZW5kZXJlcigpLmZsb3dUaHJlYWRTdGF0ZSgpID09IFJlbmRlckVsZW1lbnQ6
Ok5vdEluc2lkZUZsb3dUaHJlYWQ7CisgICAgaWYgKG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZyAmJiBsYXllci5pc1NlbGZQYWludGluZ0xheWVyKCkpIHsKKyAgICAgICAgaWYgKCFsYXllci5p
c0luc2lkZUZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
IC8vIENTUyBSZWdpb25zIGZsb3cgdGhyZWFkcyBkbyBub3QgbmVlZCB0byBiZSBjb21wb3NpdGVk
IGFzIHdlIHVzZSBjb21wb3NpdGVkIFJlbmRlclJlZ2lvbnMKKyAgICAgICAgLy8gdG8gcmVuZGVy
IHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgorICAgICAgICBpZiAobGF5
ZXIuaXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgLy8gQSBmYXN0ZXIgd2F5IG9mIHNheWluZyBsYXllci5lbmNsb3NpbmdGbG93VGhyZWFk
TGF5ZXIoKS0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25z
KCkKKyAgICAgICAgcmV0dXJuIGxheWVyLmlzSW5zaWRlT3V0T2ZGbG93VGhyZWFkKCk7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
cXVpcmVzT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgUmVu
ZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3JMYXllciwgY29uc3QgSW50UmVjdCYgbGF5ZXJD
b21wb3NpdGVkQm91bmRzSW5BbmNlc3RvciwgY29uc3QgSW50UmVjdCYgYW5jZXN0b3JDb21wb3Np
dGVkQm91bmRzKSBjb25zdApAQCAtMjE1NCw4ICsyMjIwLDggQEAgYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihSZW5kZXJMYXll
ck1vZGUKICAgICBSZW5kZXJMYXllciYgbGF5ZXIgPSAqdG9SZW5kZXJCb3hNb2RlbE9iamVjdChy
ZW5kZXJlcikubGF5ZXIoKTsKIAogICAgIC8vIFdoZW4gYSBsYXllciBoYXMgY29tcG9zaXRlZCBk
ZXNjZW5kYW50cywgc29tZSBlZmZlY3RzLCBsaWtlIDJkIHRyYW5zZm9ybXMsIGZpbHRlcnMsIG1h
c2tzIGV0YyBtdXN0IGJlIGltcGxlbWVudGVkCi0gICAgLy8gdmlhIGNvbXBvc2l0aW5nIHNvIHRo
YXQgdGhleSBhbHNvIGFwcGx5IHRvIHRob3NlIGNvbXBvc2l0ZWQgZGVzY2RlbmRhbnRzLgotICAg
IGlmIChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgKGxheWVyLnRyYW5zZm9ybSgpIHx8IHJl
bmRlcmVyLmNyZWF0ZXNHcm91cCgpIHx8IHJlbmRlcmVyLmhhc1JlZmxlY3Rpb24oKSkpIHsKKyAg
ICAvLyB2aWEgY29tcG9zaXRpbmcgc28gdGhhdCB0aGV5IGFsc28gYXBwbHkgdG8gdGhvc2UgY29t
cG9zaXRlZCBkZXNjZW5kYW50cy4KKyAgICBpZiAoaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzICYm
IChsYXllci50cmFuc2Zvcm0oKSB8fCByZW5kZXJlci5jcmVhdGVzR3JvdXAoKSB8fCByZW5kZXJl
ci5oYXNSZWZsZWN0aW9uKCkgfHwgcmVuZGVyZXIuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENv
bnRhaW5lcigpKSkgewogICAgICAgICByZWFzb24gPSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ0ZvckdyYXBoaWNhbEVmZmVjdDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmlu
ZGV4IDQ3NzYyYWIuLmU3ODNmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRml4ZWRQb3Np
dGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3Jh
cGhpY3NMYXllclVwZGF0ZXI7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKK2NsYXNzIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50OwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKQEAgLTE0MSw3ICsxNDIsNyBAQCBw
dWJsaWM6CiAgICAgLy8gd2UgZGlzY292ZXIgdGhhdCBhbiBpZnJhbWUgaXMgb3ZlcmxhcHBlZCBk
dXJpbmcgcGFpbnRpbmcpLgogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRl
KCk7CiAKLSAgICAvLyBVcGRhdGUgdGhlIG1hcHMgdGhhdCB3ZSB1c2UgdG8gZGlzdHJpYnV0ZSBs
YXllcnMgdG8gY29yZXNwb25kaW5nIFJlbmRlclJlZ2lvbnMuCisgICAgLy8gVXBkYXRlIHRoZSBt
YXBzIHRoYXQgd2UgdXNlIHRvIGRpc3RyaWJ1dGUgbGF5ZXJzIHRvIGNvcmVzcG9uZGluZyByZWdp
b25zLgogICAgIHZvaWQgdXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lmTmVlZGVkKCk7CiAg
ICAgCiAgICAgLy8gVXBkYXRlIHRoZSBjb21wb3NpdGluZyBzdGF0ZSBvZiB0aGUgZ2l2ZW4gbGF5
ZXIuIFJldHVybnMgdHJ1ZSBpZiB0aGF0IHN0YXRlIGNoYW5nZWQuCkBAIC0zMjMsMTAgKzMyNCwx
NiBAQCBwcml2YXRlOgogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBsYXllcidzIGNvbXBv
c2l0aW5nIGNoYW5nZWQKICAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhS
ZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgUmVuZGVyTGF5ZXImLCBPdmVybGFwTWFwKiwgc3Ry
dWN0IENvbXBvc2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBkZXNjZW5k
YW50SGFzM0RUcmFuc2Zvcm0pOworCisgICAgdm9pZCBjb21wdXRlUmVnaW9uQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMoUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqLCBPdmVybGFwTWFwKiwgQ29tcG9z
aXRpbmdTdGF0ZSYsIGJvb2wmIGxheWVyc0NoYW5nZWQsIGJvb2wmIGFueURlc2NlbmRhbnRIYXMz
RFRyYW5zZm9ybSk7CiAgICAgCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwgcGFyZW50
aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFuIGFycmF5
IG9mIGNoaWxkIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIuCiAgICAg
dm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXImLCBWZWN0b3I8R3Jh
cGhpY3NMYXllcio+JiBjaGlsZEdyYXBoaWNzTGF5ZXJzT2ZFbmNsb3NpbmdMYXllciwgaW50IGRl
cHRoKTsKIAorICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIFJlbmRlckZsb3dUaHJlYWQgdHJlZSwg
cGFyZW50aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFu
IGFycmF5IG9mIGNoaWxkIAorICAgIC8vIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRp
bmcgbGF5ZXIgY29ycmVzcG9uZGluZyB0byB0aGUgYW5vbnltb3VzIHJlZ2lvbiAodGhhdCBiZWxv
bmdzIHRvIHRoZSByZWdpb24ncyBwYXJlbnQpLgorICAgIHZvaWQgcmVidWlsZFJlZ2lvbkNvbXBv
c2l0aW5nTGF5ZXJUcmVlKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiwgVmVjdG9yPEdyYXBoaWNz
TGF5ZXIqPiYgY2hpbGRMaXN0LCBpbnQgZGVwdGgpOworCiAgICAgLy8gUmVjdXJzZXMgZG93biB0
aGUgdHJlZSwgdXBkYXRpbmcgbGF5ZXIgZ2VvbWV0cnkgb25seS4KICAgICB2b2lkIHVwZGF0ZUxh
eWVyVHJlZUdlb21ldHJ5KFJlbmRlckxheWVyJiwgaW50IGRlcHRoKTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IGVh
YTEyZjcuLjUwYTcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtblNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmNwcApAQCAtNTA4LDYgKzUwOCwzNiBAQCB2b2lkIFJlbmRlck11bHRp
Q29sdW1uU2V0Ojpjb2xsZWN0TGF5ZXJGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmIGZyYWdtZW50
cywgY29ucwogICAgIH0KIH0KIAordm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6YWRqdXN0UmVn
aW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJP
ZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykKK3sKKyAgICBMYXlvdXRVbml0IGxheWVyTG9n
aWNhbFRvcCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsYXllck9mZnNldC55KCkgOiBs
YXllck9mZnNldC54KCk7CisgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4gPSBjb2x1bW5JbmRleEF0
T2Zmc2V0KGxheWVyTG9naWNhbFRvcCk7CisgICAgCisgICAgTGF5b3V0VW5pdCBjb2xHYXAgPSBj
b2x1bW5HYXAoKTsKKyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVkQ29s
dW1uV2lkdGgoKTsKKyAgICAKKyAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uID0gZmxv
d1RocmVhZFBvcnRpb25SZWN0QXQoc3RhcnRDb2x1bW4pOworICAgIExheW91dFBvaW50IHRyYW5z
bGF0aW9uT2Zmc2V0OworCisgICAgTGF5b3V0VW5pdCBpbmxpbmVPZmZzZXQgPSBzdGFydENvbHVt
biAqIChjb2xMb2dpY2FsV2lkdGggKyBjb2xHYXApOworICAgIGlmICghc3R5bGUoKS0+aXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpKQorICAgICAgICBpbmxpbmVPZmZzZXQgPSAtaW5saW5lT2Zmc2V0
OworICAgIHRyYW5zbGF0aW9uT2Zmc2V0LnNldFgoaW5saW5lT2Zmc2V0KTsKKyAgICAgICAgCisg
ICAgTGF5b3V0VW5pdCBibG9ja09mZnNldCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyAt
Zmxvd1RocmVhZFBvcnRpb24ueSgpIDogLWZsb3dUaHJlYWRQb3J0aW9uLngoKTsKKyAgICBpZiAo
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkpCisgICAg
ICAgIGJsb2NrT2Zmc2V0ID0gLWJsb2NrT2Zmc2V0OworICAgIHRyYW5zbGF0aW9uT2Zmc2V0LnNl
dFkoYmxvY2tPZmZzZXQpOworICAgIAorICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSkKKyAgICAgICAgdHJhbnNsYXRpb25PZmZzZXQgPSB0cmFuc2xhdGlvbk9mZnNldC50cmFuc3Bv
c2VkUG9pbnQoKTsKKworICAgIC8vIEZJWE1FOiBUaGUgdHJhbnNsYXRpb24gbmVlZHMgdG8gaW5j
bHVkZSB0aGUgbXVsdGljb2x1bW4gc2V0J3MgY29udGVudCBvZmZzZXQgd2l0aGluIHRoZQorICAg
IC8vIG11bHRpY29sdW1uIGJsb2NrIGFzIHdlbGwuIFRoaXMgd29uJ3QgYmUgYW4gaXNzdWUgdW50
aWwgd2Ugc3RhcnQgY3JlYXRpbmcgbXVsdGlwbGUgbXVsdGljb2x1bW4gc2V0cy4KKyAgICAKKyAg
ICByZWdpb25Cb3VuZHMubW92ZUJ5KHJvdW5kZWRJbnRQb2ludCgtdHJhbnNsYXRpb25PZmZzZXQp
KTsKK30KKwogY29uc3QgY2hhciogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlbmRlck5hbWUoKSBj
b25zdAogeyAgICAKICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uU2V0IjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKaW5kZXggZGVmZmJk
MS4uY2VhYjM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIGNvbGxlY3RMYXllckZyYWdtZW50cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IExheW91dFJl
Y3QmIGxheWVyQm91bmRpbmdCb3gsIGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkgT1ZFUlJJ
REU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQ
b3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJv
dW5kcykgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdDsKICAgICAKICAgICB2b2lkIHBhaW50Q29sdW1uUnVsZXMoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKaW5kZXggNjM1Mjc1MC4uMTdhZDY4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
LmgKQEAgLTUxLDYgKzUxLDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQc2V1ZG9FbGVtZW50
UmVnaW9uKCkgY29uc3QgeyByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzUHNldWRvRWxl
bWVudCgpOyB9CiAKKyAgICAvLyBXaGVuIHRoZSBjb250ZW50IGluc2lkZSB0aGUgcmVnaW9uIHJl
cXVpcmVzIHRoZSByZWdpb24gdG8gaGF2ZSBhIGxheWVyLCB0aGUgbGF5ZXIgd2lsbCBiZSBjcmVh
dGVkIG9uIHRoZSByZWdpb24ncworICAgIC8vIHBhcmVudCByZW5kZXJlciBpbnN0ZWFkLgorICAg
IC8vIFRoaXMgbWV0aG9kIHJldHVybnMgdGhhdCByZW5kZXJlciBob2xkaW5nIHRoZSBsYXllci4K
KyAgICAvLyBUaGUgcmV0dXJuIHZhbHVlIG1heSBiZSBudWxsLgorICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGxheWVyT3duZXIoKSBjb25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQo
KS0+aXNSZW5kZXJMYXllck1vZGVsT2JqZWN0KCkgPworICAgICAgICB0b1JlbmRlckxheWVyTW9k
ZWxPYmplY3QocGFyZW50KCkpIDogbnVsbHB0cjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDFi
NjZmNjkuLjkyNTMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1l
bnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAg
IDogUmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCkKKyAgICAsIG1fZmxvd1RocmVhZENoaWxkTGlz
dChhZG9wdFB0cihuZXcgRmxvd1RocmVhZENoaWxkTGlzdCgpKSkKICAgICAsIG1fb3ZlcnNldCh0
cnVlKQogICAgICwgbV9uYW1lZEZsb3cobmFtZWRGbG93KQogICAgICwgbV9yZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCkKQEAgLTk5LDggKzEwMCw4IEBAIHZvaWQgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjp1cGRhdGVXcml0aW5nTW9kZSgpCiAKIFJlbmRlck9iamVjdCogUmVuZGVy
TmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7
Ci0gICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zsb3dUaHJl
YWRDaGlsZExpc3QuYmVnaW4oKTsKLSAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVy
YXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuZW5kKCk7CisgICAgRmxvd1RocmVhZENo
aWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zsb3dUaHJlYWRDaGlsZExpc3QtPmJlZ2lu
KCk7CisgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93
VGhyZWFkQ2hpbGRMaXN0LT5lbmQoKTsKIAogICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsK
ICAgICAgICAgUmVuZGVyT2JqZWN0KiBjaGlsZCA9ICppdDsKQEAgLTExNSwxMSArMTE2LDExIEBA
IFJlbmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2Rl
KE5vZGUqIG5vZGUpIGNvbnN0CiAKIFJlbmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFk
OjpwcmV2aW91c1JlbmRlcmVyRm9yTm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIGlmICht
X2Zsb3dUaHJlYWRDaGlsZExpc3QuaXNFbXB0eSgpKQorICAgIGlmIChtX2Zsb3dUaHJlYWRDaGls
ZExpc3QtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBGbG93VGhyZWFkQ2hp
bGRMaXN0Ojpjb25zdF9pdGVyYXRvciBiZWdpbiA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC5iZWdp
bigpOwotICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fZmxv
d1RocmVhZENoaWxkTGlzdC5lbmQoKTsKKyAgICBGbG93VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9p
dGVyYXRvciBiZWdpbiA9IG1fZmxvd1RocmVhZENoaWxkTGlzdC0+YmVnaW4oKTsKKyAgICBGbG93
VGhyZWFkQ2hpbGRMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2Zsb3dUaHJlYWRDaGlsZExp
c3QtPmVuZCgpOwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
ZW5kOwogCiAgICAgZG8gewpAQCAtMTQ5LDE0ICsxNTAsMTQgQEAgdm9pZCBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmFkZEZsb3dDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkKQogCiAgICAgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IG5leHRSZW5kZXJlckZvck5vZGUoY2hpbGROb2RlKTsK
ICAgICBpZiAoYmVmb3JlQ2hpbGQpCi0gICAgICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC5pbnNl
cnRCZWZvcmUoYmVmb3JlQ2hpbGQsIG5ld0NoaWxkKTsKKyAgICAgICAgbV9mbG93VGhyZWFkQ2hp
bGRMaXN0LT5pbnNlcnRCZWZvcmUoYmVmb3JlQ2hpbGQsIG5ld0NoaWxkKTsKICAgICBlbHNlCi0g
ICAgICAgIG1fZmxvd1RocmVhZENoaWxkTGlzdC5hZGQobmV3Q2hpbGQpOworICAgICAgICBtX2Zs
b3dUaHJlYWRDaGlsZExpc3QtPmFkZChuZXdDaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRG
bG93VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAgICBt
X2Zsb3dUaHJlYWRDaGlsZExpc3QucmVtb3ZlKGNoaWxkKTsKKyAgICBtX2Zsb3dUaHJlYWRDaGls
ZExpc3QtPnJlbW92ZShjaGlsZCk7CiB9CiAKIGJvb2wgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpk
ZXBlbmRzT24oUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNv
bnN0CkBAIC03MjcsNCArNzI4LDE1IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpnZXRS
YW5nZXMoVmVjdG9yPFJlZlB0cjxSYW5nZT4+JiByYW5nZU9iamVjdHMsIGNvbnN0CiAgICAgfQog
fQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAorewor
ICAgIC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMgZm9yIG5hbWVkIGZs
b3cgdGhyZWFkcy4KKyAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFkcyBhcmUgZGlzcGxheWVkIG9u
IHRvcCBvZiB0aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUKKyAgICAvLyBkaXN0cmlidXRp
bmcgdGhlIGxheWVycy4KKworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCA0
OGYwMWNlLi45M2EwNjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5oCkBAIC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
YWRkRmxvd0NoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQpOwogICAgIHZvaWQgcmVtb3ZlRmxv
d0NoaWxkKFJlbmRlck9iamVjdCopOwotICAgIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCB7IHJl
dHVybiAhbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ2hp
bGRyZW4oKSBjb25zdCB7IHJldHVybiAhbV9mbG93VGhyZWFkQ2hpbGRMaXN0LT5pc0VtcHR5KCk7
IH0KICNpZm5kZWYgTkRFQlVHCi0gICAgYm9vbCBoYXNDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxk
KSBjb25zdCB7IHJldHVybiBtX2Zsb3dUaHJlYWRDaGlsZExpc3QuY29udGFpbnMoY2hpbGQpOyB9
CisgICAgYm9vbCBoYXNDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBt
X2Zsb3dUaHJlYWRDaGlsZExpc3QtPmNvbnRhaW5zKGNoaWxkKTsgfQogI2VuZGlmCiAKICAgICB2
b2lkIHB1c2hEZXBlbmRlbmNpZXMoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCYpOwpAQCAtODAs
NiArODAsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNNYXJrZWRGb3JEZXN0cnVjdGlvbigpIGNv
bnN0OwogICAgIHZvaWQgZ2V0UmFuZ2VzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYsIGNvbnN0IFJl
bmRlclJlZ2lvbiopIGNvbnN0OwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29u
c3QgT1ZFUlJJREU7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TWFya0ZvckRl
c3RydWN0aW9uKCk7CiAgICAgdm9pZCByZXNldE1hcmtGb3JEZXN0cnVjdGlvbigpOwpAQCAtMTE5
LDcgKzEyMyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBIb2xkcyB0aGUgc29ydGVkIGNoaWxkcmVu
IG9mIGEgbmFtZWQgZmxvdy4gVGhpcyBpcyB0aGUgb25seSB3YXkgd2UgY2FuIGdldCB0aGUgb3Jk
ZXJpbmcgcmlnaHQuCiAgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93
VGhyZWFkQ2hpbGRMaXN0OwotICAgIEZsb3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hp
bGRMaXN0OworICAgIE93blB0cjxGbG93VGhyZWFkQ2hpbGRMaXN0PiBtX2Zsb3dUaHJlYWRDaGls
ZExpc3Q7CiAKICAgICBOYW1lZEZsb3dDb250ZW50RWxlbWVudHMgbV9jb250ZW50RWxlbWVudHM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggODliOTcw
ZC4uN2RkMWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAK
QEAgLTczMCw2ICs3MzAsMTYgQEAgdm9pZCBSZW5kZXJSZWdpb246OnVwZGF0ZUxvZ2ljYWxIZWln
aHQoKQogICAgIH0KIH0KIAordm9pZCBSZW5kZXJSZWdpb246OmFkanVzdFJlZ2lvbkJvdW5kc0Zy
b21GbG93VGhyZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGxheWVyT2Zmc2V0LCBJbnRS
ZWN0JiByZWdpb25Cb3VuZHMpCit7CisgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1RocmVhZFBv
cnRpb25SZWN0ID0gZmxvd1RocmVhZFBvcnRpb25SZWN0KCk7CisgICAgZmxvd1RocmVhZCgpLT5m
bGlwRm9yV3JpdGluZ01vZGUoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7CisgICAgcmVn
aW9uQm91bmRzLm1vdmVCeShyb3VuZGVkSW50UG9pbnQoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9u
UmVjdC5sb2NhdGlvbigpKSk7CisKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJPZmZzZXQpOworfQor
CisKIFJlbmRlck92ZXJmbG93KiBSZW5kZXJSZWdpb246OmVuc3VyZU92ZXJmbG93Rm9yQm94KGNv
bnN0IFJlbmRlckJveCogYm94KQogewogICAgIFJlbmRlckJveFJlZ2lvbkluZm8qIGJveEluZm8g
PSByZW5kZXJCb3hSZWdpb25JbmZvKGJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmgKaW5kZXggOWRhNWIyZC4uZGU0MDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uaApAQCAtMTM3LDYgKzEzNyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBjb2xsZWN0TGF5ZXJGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmLCBjb25zdCBMYXlv
dXRSZWN0JiwgY29uc3QgTGF5b3V0UmVjdCYpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGFkanVz
dFJlZ2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGxh
eWVyT2Zmc2V0LCBJbnRSZWN0JiByZWdpb25Cb3VuZHMpOyAvLyBsYXllck9mZnNldCBpcyBuZWVk
ZWQgZm9yIG11bHRpLWNvbHVtbi4KKwogICAgIHZvaWQgYWRkTGF5b3V0T3ZlcmZsb3dGb3JCb3go
Y29uc3QgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIHZvaWQgYWRkVmlzdWFs
T3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAg
IExheW91dFJlY3QgbGF5b3V0T3ZlcmZsb3dSZWN0Rm9yQm94KGNvbnN0IFJlbmRlckJveCopOwpA
QCAtMjQ1LDggKzI0NywyMSBAQCBpbmxpbmUgY29uc3QgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJl
Z2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2JqZWN0KTsKIH0KIAoraW5saW5lIFJlbmRlclJlZ2lvbiYg
dG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0JiBvYmplY3QpCit7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyUmVnaW9uKCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJSZWdpb24mPihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3Qg
UmVuZGVyUmVnaW9uJiB0b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
K3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJS
ZWdpb24oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclJlZ2lvbiY+KG9i
amVjdCk7Cit9CisKIC8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nh
cnkgY2FzdC4KIHZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyUmVnaW9uKik7Cit2b2lk
IHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlclJlZ2lvbiYpOwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cAppbmRleCAyYjZmMDkzLi5hYzM0MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC03NzcsMTggKzc3NywyMiBAQCBzdGF0aWMgdm9pZCB3
cml0ZUxheWVycyhUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwg
UmVuZGVyTGF5ZQogICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zTGlzdCA9IGwtPnBv
c1pPcmRlckxpc3QoKSkgewogICAgICAgICBzaXplX3QgbGF5ZXJDb3VudCA9IDA7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgIT0gcG9zTGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAg
ICAgICBpZiAoIXBvc0xpc3QtPmF0KGkpLT5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkK
KyAgICAgICAgICAgIGlmICghcG9zTGlzdC0+YXQoaSktPmlzRmxvd1RocmVhZENvbGxlY3RpbmdH
cmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgICAgICsrbGF5ZXJDb3Vu
dDsKICAgICAgICAgaWYgKGxheWVyQ291bnQpIHsKICAgICAgICAgICAgIGludCBjdXJySW5kZW50
ID0gaW5kZW50OwotICAgICAgICAgICAgaWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xh
eWVyTmVzdGluZykgewotICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwot
ICAgICAgICAgICAgICAgIHRzIDw8ICIgcG9zaXRpdmUgei1vcmRlciBsaXN0KCIgPDwgbGF5ZXJD
b3VudCA8PCAiKVxuIjsKLSAgICAgICAgICAgICAgICArK2N1cnJJbmRlbnQ7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUo
KTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZs
b3dSZW5kZXJGbG93VGhyZWFkKCkpCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRz
LCByb290TGF5ZXIsIHBvc0xpc3QtPmF0KGkpLCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwg
YmVoYXZpb3IpOworICAgICAgICAgICAgLy8gV2Ugb25seSBwcmludCB0aGUgaGVhZGVyIGlmIHRo
ZXJlJ3MgYXQgbGlzdCBhIG5vbi1SZW5kZXJOYW1lZEZsb3dUaHJlYWQgcGFydCBvZiB0aGUgbGlz
dC4KKyAgICAgICAgICAgIGlmICghcG9zTGlzdC0+c2l6ZSgpIHx8ICFwb3NMaXN0LT5hdCgwKS0+
aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoYmVoYXZpb3IgJiBSZW5kZXJBc1RleHRTaG93TGF5ZXJOZXN0aW5n
KSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAg
ICAgICAgICAgICAgICB0cyA8PCAiIHBvc2l0aXZlIHotb3JkZXIgbGlzdCgiIDw8IHBvc0xpc3Qt
PnNpemUoKSA8PCAiKVxuIjsKKyAgICAgICAgICAgICAgICAgICAgKytjdXJySW5kZW50OworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9
IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBw
cmludCBuYW1lZCBmbG93cyB0d2ljZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwb3NMaXN0
LT5hdChpKS0+aXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25z
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUxheWVycyh0cywgcm9vdExheWVyLCBw
b3NMaXN0LT5hdChpKSwgcGFpbnREaXJ0eVJlY3QsIGN1cnJJbmRlbnQsIGJlaGF2aW9yKTsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>